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 |