D7549: graft: never set both parents equal in the dirstate (issue6098)
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Thu Dec 5 18:03:56 UTC 2019
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
merge.graft() can set both parents equal in the dirstate when
keepparent=True. We don't seem to set that in core, but the evolve
extension does use it. So I couldn't figure out a way to add a test
for this patch in core.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D7549
AFFECTED FILES
mercurial/merge.py
CHANGE DETAILS
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -2626,6 +2626,9 @@
if keepparent and len(parents) == 2 and base in parents:
parents.remove(base)
pother = parents[0].node()
+ # Never set both parents equal to each other
+ if pother == pctx.node():
+ pother = nullid
with repo.dirstate.parentchange():
repo.setparents(pctx.node(), pother)
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list