uncommit: mark old node obsolete after updating dirstate
The next patch will start doing more things with the context object
for the old node and that ran into problems without this
change. Regardless of that, I think it seems better to first update to
the new node and then mark the old node obsolete.
Differential Revision: https://phab.mercurial-scm.org/D5660
--- a/hgext/uncommit.py Fri Jan 18 17:09:42 2019 -0800
+++ b/hgext/uncommit.py Sun Jan 20 22:00:21 2019 -0800
@@ -179,13 +179,13 @@
# Fully removed the old commit
mapping[old.node()] = ()
- scmutil.cleanupnodes(repo, mapping, 'uncommit', fixphase=True)
-
with repo.dirstate.parentchange():
repo.dirstate.setparents(newid, node.nullid)
s = old.p1().status(old, match=match)
_fixdirstate(repo, old, repo[newid], s)
+ scmutil.cleanupnodes(repo, mapping, 'uncommit', fixphase=True)
+
def predecessormarkers(ctx):
"""yields the obsolete markers marking the given changeset as a successor"""
for data in ctx.repo().obsstore.predecessors.get(ctx.node(), ()):