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