[Request] [+ ] D8615: merge: move an inspection of the dirstate from record to calculate phase
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Sat Jun 6 01:37:37 UTC 2020
martinvonz created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
The intent is clearly to have `calculateupdates()` figure out what
actions need to be taken and `recordupdates()` to make necessary
modifications to the dirstate. However, in the
`ACTION_PATH_CONFLICT_RESOLVE` case, there was one little inspection
of copy information done in `recordupdates()`. This patch moves that
to `calculateupdates()`. That will help with the next patch, which
makes `merge.update()` work better with `overlayworkingctx` (copies
should be recorded there too, even though we skip the
`recordupdates()` step).
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D8615
AFFECTED FILES
mercurial/merge.py
mercurial/mergestate.py
CHANGE DETAILS
diff --git a/mercurial/mergestate.py b/mercurial/mergestate.py
--- a/mercurial/mergestate.py
+++ b/mercurial/mergestate.py
@@ -769,8 +769,7 @@
# resolve path conflicts
for f, args, msg in actions.get(ACTION_PATH_CONFLICT_RESOLVE, []):
- (f0,) = args
- origf0 = repo.dirstate.copied(f0) or f0
+ (f0, origf0) = args
repo.dirstate.add(f)
repo.dirstate.copy(origf0, f)
if f0 == origf0:
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -460,9 +460,10 @@
if p not in deletedfiles:
ctxname = bytes(wctx).rstrip(b'+')
pnew = util.safename(p, ctxname, wctx, set(actions.keys()))
+ porig = wctx[p].copysource() or p
actions[pnew] = (
mergestatemod.ACTION_PATH_CONFLICT_RESOLVE,
- (p,),
+ (p, porig),
b'local path conflict',
)
actions[p] = (
@@ -1280,7 +1281,7 @@
# resolve path conflicts (must come before getting)
for f, args, msg in actions[mergestatemod.ACTION_PATH_CONFLICT_RESOLVE]:
repo.ui.debug(b" %s: %s -> pr\n" % (f, msg))
- (f0,) = args
+ (f0, origf0) = args
if wctx[f0].lexists():
repo.ui.note(_(b"moving %s to %s\n") % (f0, f))
wctx[f].audit()
To: martinvonz, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200606/f2e253a8/attachment.html>
More information about the Mercurial-patches
mailing list