changeset 45759:e0ad11ab8052 stable

backout: don't assume that tip as what we just committed Differential Revision: https://phab.mercurial-scm.org/D9256
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
date Wed, 28 Oct 2020 17:41:25 +0100
parents ff48eea4a926
children 341e014fe0fb
files mercurial/commands.py tests/test-backout.t
diffstat 2 files changed, 17 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py	Fri Oct 23 20:33:36 2020 +0900
+++ b/mercurial/commands.py	Wed Oct 28 17:41:25 2020 +0100
@@ -861,13 +861,11 @@
 
     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)
-        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'])
--- a/tests/test-backout.t	Fri Oct 23 20:33:36 2020 +0900
+++ b/tests/test-backout.t	Wed Oct 28 17:41:25 2020 +0100
@@ -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