equal
deleted
inserted
replaced
106 for subpath in ctx2.substate: |
106 for subpath in ctx2.substate: |
107 if subpath not in ctx1.substate: |
107 if subpath not in ctx1.substate: |
108 del subpaths[subpath] |
108 del subpaths[subpath] |
109 missing.add(subpath) |
109 missing.add(subpath) |
110 |
110 |
111 for subpath, ctx in sorted(pycompat.iteritems(subpaths)): |
111 for subpath, ctx in sorted(subpaths.items()): |
112 yield subpath, ctx.sub(subpath) |
112 yield subpath, ctx.sub(subpath) |
113 |
113 |
114 # Yield an empty subrepo based on ctx1 for anything only in ctx2. That way, |
114 # Yield an empty subrepo based on ctx1 for anything only in ctx2. That way, |
115 # status and diff will have an accurate result when it does |
115 # status and diff will have an accurate result when it does |
116 # 'sub.{status|diff}(rev2)'. Otherwise, the ctx2 subrepo is compared |
116 # 'sub.{status|diff}(rev2)'. Otherwise, the ctx2 subrepo is compared |
1334 subrepos=sorted(ctx.substate), |
1334 subrepos=sorted(ctx.substate), |
1335 unknown=True, |
1335 unknown=True, |
1336 ignored=False, |
1336 ignored=False, |
1337 full=False, |
1337 full=False, |
1338 ) |
1338 ) |
1339 for abs, st in pycompat.iteritems(walkresults): |
1339 for abs, st in walkresults.items(): |
1340 entry = dirstate.get_entry(abs) |
1340 entry = dirstate.get_entry(abs) |
1341 if (not entry.any_tracked) and audit_path.check(abs): |
1341 if (not entry.any_tracked) and audit_path.check(abs): |
1342 unknown.append(abs) |
1342 unknown.append(abs) |
1343 elif (not entry.removed) and not st: |
1343 elif (not entry.removed) and not st: |
1344 deleted.append(abs) |
1344 deleted.append(abs) |
1381 and the files in renames as copied.""" |
1381 and the files in renames as copied.""" |
1382 wctx = repo[None] |
1382 wctx = repo[None] |
1383 with repo.wlock(): |
1383 with repo.wlock(): |
1384 wctx.forget(deleted) |
1384 wctx.forget(deleted) |
1385 wctx.add(unknown) |
1385 wctx.add(unknown) |
1386 for new, old in pycompat.iteritems(renames): |
1386 for new, old in renames.items(): |
1387 wctx.copy(old, new) |
1387 wctx.copy(old, new) |
1388 |
1388 |
1389 |
1389 |
1390 def getrenamedfn(repo, endrev=None): |
1390 def getrenamedfn(repo, endrev=None): |
1391 if copiesmod.usechangesetcentricalgo(repo): |
1391 if copiesmod.usechangesetcentricalgo(repo): |
1507 ds.update_file_p1(f, p1_tracked=True) |
1507 ds.update_file_p1(f, p1_tracked=True) |
1508 |
1508 |
1509 # Merge old parent and old working dir copies |
1509 # Merge old parent and old working dir copies |
1510 oldcopies = copiesmod.pathcopies(newctx, oldctx, match) |
1510 oldcopies = copiesmod.pathcopies(newctx, oldctx, match) |
1511 oldcopies.update(copies) |
1511 oldcopies.update(copies) |
1512 copies = { |
1512 copies = {dst: oldcopies.get(src, src) for dst, src in oldcopies.items()} |
1513 dst: oldcopies.get(src, src) |
|
1514 for dst, src in pycompat.iteritems(oldcopies) |
|
1515 } |
|
1516 # Adjust the dirstate copies |
1513 # Adjust the dirstate copies |
1517 for dst, src in pycompat.iteritems(copies): |
1514 for dst, src in copies.items(): |
1518 if src not in newctx or dst in newctx or not ds.get_entry(dst).added: |
1515 if src not in newctx or dst in newctx or not ds.get_entry(dst).added: |
1519 src = None |
1516 src = None |
1520 ds.copy(src, dst) |
1517 ds.copy(src, dst) |
1521 repo._quick_access_changeid_invalidate() |
1518 repo._quick_access_changeid_invalidate() |
1522 |
1519 |