mercurial/localrepo.py
changeset 21395 f251b92d9ed9
parent 21394 20a30cd41d21
child 21399 3b6b1b407e99
equal deleted inserted replaced
21394:20a30cd41d21 21395:f251b92d9ed9
  1548                                      listclean, listunknown)
  1548                                      listclean, listunknown)
  1549             cmp, modified, added, removed, deleted, unknown, ignored, clean = s
  1549             cmp, modified, added, removed, deleted, unknown, ignored, clean = s
  1550 
  1550 
  1551             # check for any possibly clean files
  1551             # check for any possibly clean files
  1552             if parentworking and cmp:
  1552             if parentworking and cmp:
  1553                 fixup = []
  1553                 modified2, fixup = ctx2._checklookup(cmp)
  1554                 # do a full compare of any files that might have changed
  1554                 modified += modified2
  1555                 for f in sorted(cmp):
       
  1556                     if (f not in ctx1 or ctx2.flags(f) != ctx1.flags(f)
       
  1557                         or ctx1[f].cmp(ctx2[f])):
       
  1558                         modified.append(f)
       
  1559                     else:
       
  1560                         fixup.append(f)
       
  1561 
  1555 
  1562                 # update dirstate for files that are actually clean
  1556                 # update dirstate for files that are actually clean
  1563                 if fixup:
  1557                 if fixup and listclean:
  1564                     if listclean:
  1558                     clean += fixup
  1565                         clean += fixup
       
  1566 
       
  1567                     try:
       
  1568                         # updating the dirstate is optional
       
  1569                         # so we don't wait on the lock
       
  1570                         normal = self.dirstate.normal
       
  1571                         wlock = self.wlock(False)
       
  1572                         try:
       
  1573                             for f in fixup:
       
  1574                                 normal(f)
       
  1575                         finally:
       
  1576                             wlock.release()
       
  1577                     except error.LockError:
       
  1578                         pass
       
  1579 
  1559 
  1580         if not parentworking:
  1560         if not parentworking:
  1581             mf1 = mfmatches(ctx1)
  1561             mf1 = mfmatches(ctx1)
  1582             if working:
  1562             if working:
  1583                 # we are comparing working dir against non-parent
  1563                 # we are comparing working dir against non-parent