diff --git a/mercurial/commands.py b/mercurial/commands.py index ff48eea4a926fe9745a26c2fa7e06f91b7c82c71_bWVyY3VyaWFsL2NvbW1hbmRzLnB5..e0ad11ab80529b702afc901da0c3e5f7bf57df2b_bWVyY3VyaWFsL2NvbW1hbmRzLnB5 100644 --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -861,7 +861,7 @@ ui.status( _(b'changeset %s backs out changeset %s\n') - % (nice(repo.changelog.tip()), nice(node)) + % (nice(newnode), nice(node)) ) if opts.get(b'merge') and op1 != node: hg.clean(repo, op1, show_stats=False) @@ -865,9 +865,7 @@ ) if opts.get(b'merge') and op1 != node: hg.clean(repo, op1, show_stats=False) - ui.status( - _(b'merging with changeset %s\n') % nice(repo.changelog.tip()) - ) + ui.status(_(b'merging with changeset %s\n') % nice(newnode)) overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')} with ui.configoverride(overrides, b'backout'): return hg.merge(repo[b'tip']) diff --git a/tests/test-backout.t b/tests/test-backout.t index ff48eea4a926fe9745a26c2fa7e06f91b7c82c71_dGVzdHMvdGVzdC1iYWNrb3V0LnQ=..e0ad11ab80529b702afc901da0c3e5f7bf57df2b_dGVzdHMvdGVzdC1iYWNrb3V0LnQ= 100644 --- a/tests/test-backout.t +++ b/tests/test-backout.t @@ -806,3 +806,18 @@ $ hg backout --merge --no-commit 2 abort: cannot specify both --no-commit and --merge [255] + +Ensure that backout out the same changeset twice performs correctly: + + $ hg backout 2 + removing 3 + changeset 3:8f188de730d9 backs out changeset 2:cccc23d9d68f + $ echo 4 > 4 + $ hg ci -A -m 4 + adding 4 + $ hg up 2 + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg backout 2 + removing 3 + created new head + changeset 3:8f188de730d9 backs out changeset 2:cccc23d9d68f