[PATCH 2 of 3] prepush: print short hash of first new head in abort message

Adrian Buehlmann adrian at cadifra.com
Fri Jun 3 07:36:17 CDT 2011


# HG changeset patch
# User Adrian Buehlmann <adrian at cadifra.com>
# Date 1307096177 -7200
# Node ID 8b1d682e7900cd54a886f4c4ce193046d6338a50
# Parent  fb486d537aaf30f0f19618cbe2f684b4669d4458
prepush: print short hash of first new head in abort message

and don't mention the branch if it's the default branch.

OLD:

  $ hg push ../a
  pushing to ../a
  searching for changes
  abort: push creates new remote heads on branch 'default'!
  (you should pull and merge or use push -f to force)

NEW:

  $ hg push ../a
  pushing to ../a
  searching for changes
  abort: push creates new remote head 1e108cc5548c!
  (you should pull and merge or use push -f to force)

This helps to identify which local head is causing troubles.

See also change 91cb08a9e7fb.

diff --git a/mercurial/discovery.py b/mercurial/discovery.py
--- a/mercurial/discovery.py
+++ b/mercurial/discovery.py
@@ -159,9 +159,14 @@
             newhs = set(newmap[branch])
             oldhs = set(oldmap[branch])
             if len(newhs) > len(oldhs):
+                dhs = list(newhs - oldhs)
                 if error is None:
-                    error = _("push creates new remote heads "
-                              "on branch '%s'!") % branch
+                    if branch != 'default':
+                        error = _("push creates new remote head %s "
+                                  "on branch '%s'!") % (short(dhs[0]), branch)
+                    else:
+                        error = _("push creates new remote head %s!"
+                                  ) % short(dhs[0])
                     if branch in unsynced:
                         hint = _("you should pull and merge or "
                                  "use push -f to force")
@@ -169,7 +174,7 @@
                         hint = _("did you forget to merge? "
                                  "use push -f to force")
                 repo.ui.debug("new remote heads on branch '%s'\n" % branch)
-                for h in (newhs - oldhs):
+                for h in dhs:
                     repo.ui.debug("new remote head %s\n" % short(h))
         if error:
             raise util.Abort(error, hint=hint)
diff --git a/tests/test-push-warn.t b/tests/test-push-warn.t
--- a/tests/test-push-warn.t
+++ b/tests/test-push-warn.t
@@ -25,7 +25,7 @@
   $ hg push ../a
   pushing to ../a
   searching for changes
-  abort: push creates new remote heads on branch 'default'!
+  abort: push creates new remote head 1e108cc5548c!
   (you should pull and merge or use push -f to force)
   [255]
 
@@ -39,7 +39,7 @@
   2 total queries
   new remote heads on branch 'default'
   new remote head 1e108cc5548c
-  abort: push creates new remote heads on branch 'default'!
+  abort: push creates new remote head 1e108cc5548c!
   (you should pull and merge or use push -f to force)
   [255]
 
@@ -55,7 +55,7 @@
   $ hg push ../a
   pushing to ../a
   searching for changes
-  abort: push creates new remote heads on branch 'default'!
+  abort: push creates new remote head 1e108cc5548c!
   (did you forget to merge? use push -f to force)
   [255]
 
@@ -108,7 +108,7 @@
   $ hg push ../c
   pushing to ../c
   searching for changes
-  abort: push creates new remote heads on branch 'default'!
+  abort: push creates new remote head 6346d66eb9f5!
   (did you forget to merge? use push -f to force)
   [255]
 
@@ -120,14 +120,14 @@
   $ hg push -r 3 ../c
   pushing to ../c
   searching for changes
-  abort: push creates new remote heads on branch 'default'!
+  abort: push creates new remote head a5dda829a167!
   (did you forget to merge? use push -f to force)
   [255]
 
   $ hg push -r 3 -r 4 ../c
   pushing to ../c
   searching for changes
-  abort: push creates new remote heads on branch 'default'!
+  abort: push creates new remote head a5dda829a167!
   (did you forget to merge? use push -f to force)
   [255]
 
@@ -256,7 +256,7 @@
   $ hg push -r 4 -r 7 ../f
   pushing to ../f
   searching for changes
-  abort: push creates new remote heads on branch 'a'!
+  abort: push creates new remote head 0b715ef6ff8f on branch 'a'!
   (did you forget to merge? use push -f to force)
   [255]
 
@@ -379,7 +379,7 @@
   $ hg -R i push h
   pushing to h
   searching for changes
-  abort: push creates new remote heads on branch 'default'!
+  abort: push creates new remote head 97bd0c84d346!
   (you should pull and merge or use push -f to force)
   [255]
 
@@ -449,7 +449,7 @@
   $ hg push ../l -b b
   pushing to ../l
   searching for changes
-  abort: push creates new remote heads on branch 'a'!
+  abort: push creates new remote head e7e31d71180f on branch 'a'!
   (did you forget to merge? use push -f to force)
   [255]
 
@@ -696,14 +696,14 @@
   $ hg push inner
   pushing to inner
   searching for changes
-  abort: push creates new remote heads on branch 'A'!
+  abort: push creates new remote head 7d0f4fb6cf04 on branch 'A'!
   (did you forget to merge? use push -f to force)
   [255]
 
   $ hg push inner -r4 -r5
   pushing to inner
   searching for changes
-  abort: push creates new remote heads on branch 'A'!
+  abort: push creates new remote head 7d0f4fb6cf04 on branch 'A'!
   (did you forget to merge? use push -f to force)
   [255]
 
diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t
--- a/tests/test-subrepo.t
+++ b/tests/test-subrepo.t
@@ -289,7 +289,7 @@
   no changes found
   pushing subrepo s to $TESTTMP/sub/t/s
   searching for changes
-  abort: push creates new remote heads on branch 'default'!
+  abort: push creates new remote head 12a213df6fa9!
   (did you forget to merge? use push -f to force)
   [255]
   $ hg push -f
@@ -562,7 +562,7 @@
   $ hg -R repo2 ci -m3
   committing subrepository s
   $ hg -q -R repo2 push
-  abort: push creates new remote heads on branch 'default'!
+  abort: push creates new remote head 9d66565e64e1!
   (did you forget to merge? use push -f to force)
   [255]
   $ hg -R repo update


More information about the Mercurial-devel mailing list