D10197: amend: mark commit obsolete after moving working copy
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Fri Mar 12 23:43:01 UTC 2021
martinvonz created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
We were doing it this way:
1. move working copy (repo.setparents)
2. add obsmarkers (scmutil.cleanupnodes)
3. fix dirstate (dirstate.normal/drop)
Step 1 and 3 are closely related, so let's move them together. It
seems safest to create the obsmarkers last. This patch thus makes the
order 1, 3, 2.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D10197
AFFECTED FILES
mercurial/cmdutil.py
CHANGE DETAILS
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -2967,20 +2967,6 @@
# Reroute the working copy parent to the new changeset
repo.setparents(newid, nullid)
- mapping = {old.node(): (newid,)}
- obsmetadata = None
- if opts.get(b'note'):
- obsmetadata = {b'note': encoding.fromlocal(opts[b'note'])}
- backup = ui.configbool(b'rewrite', b'backup-bundle')
- scmutil.cleanupnodes(
- repo,
- mapping,
- b'amend',
- metadata=obsmetadata,
- fixphase=True,
- targetphase=commitphase,
- backup=backup,
- )
# Fixing the dirstate because localrepo.commitctx does not update
# it. This is rather convenient because we did not need to update
@@ -3003,6 +2989,21 @@
for f in removedfiles:
dirstate.drop(f)
+ mapping = {old.node(): (newid,)}
+ obsmetadata = None
+ if opts.get(b'note'):
+ obsmetadata = {b'note': encoding.fromlocal(opts[b'note'])}
+ backup = ui.configbool(b'rewrite', b'backup-bundle')
+ scmutil.cleanupnodes(
+ repo,
+ mapping,
+ b'amend',
+ metadata=obsmetadata,
+ fixphase=True,
+ targetphase=commitphase,
+ backup=backup,
+ )
+
return newid
To: martinvonz, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list