improve error message for 'hg merge' when repo already at branchtip
authorBenoit Boissinot <benoit.boissinot@ens-lyon.org>
Sat, 25 Aug 2007 11:30:11 +0200
changeset 5242 9cd6578750b9
parent 5238 2b8373bda032
child 5243 423f4e8be115
improve error message for 'hg merge' when repo already at branchtip
mercurial/commands.py
tests/test-imerge
tests/test-imerge.out
tests/test-merge-default
tests/test-merge-default.out
--- a/mercurial/commands.py	Fri Aug 24 00:56:56 2007 +0200
+++ b/mercurial/commands.py	Sat Aug 25 11:30:11 2007 +0200
@@ -1928,10 +1928,13 @@
             raise util.Abort(_('repo has %d heads - '
                                'please merge with an explicit rev') %
                              len(heads))
+        parent = repo.dirstate.parents()[0]
         if len(heads) == 1:
-            raise util.Abort(_('there is nothing to merge - '
-                               'use "hg update" instead'))
-        parent = repo.dirstate.parents()[0]
+            msg = _('there is nothing to merge')
+            if parent != repo.lookup(repo.workingctx().branch()):
+                msg = _('%s - use "hg update" instead' % msg)
+            raise util.Abort(msg)
+
         if parent not in heads:
             raise util.Abort(_('working dir not at a head rev - '
                                'use "hg update" or merge with an explicit rev'))
--- a/tests/test-imerge	Fri Aug 24 00:56:56 2007 +0200
+++ b/tests/test-imerge	Sat Aug 25 11:30:11 2007 +0200
@@ -54,6 +54,10 @@
 hg ci -m'merged' -d '3 0'
 hg tip -v
 
+echo % nothing to merge -- tip
+hg imerge
+
+hg up 0
 echo % nothing to merge
 hg imerge
 
--- a/tests/test-imerge.out	Fri Aug 24 00:56:56 2007 +0200
+++ b/tests/test-imerge.out	Sat Aug 25 11:30:11 2007 +0200
@@ -41,5 +41,8 @@
 merged
 
 
+% nothing to merge -- tip
+abort: there is nothing to merge
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
 % nothing to merge
 abort: there is nothing to merge - use "hg update" instead
--- a/tests/test-merge-default	Fri Aug 24 00:56:56 2007 +0200
+++ b/tests/test-merge-default	Sat Aug 25 11:30:11 2007 +0200
@@ -34,6 +34,10 @@
 hg merge
 hg commit -mm2
 
+echo % should fail because at tip
+hg merge
+
+hg up 0
 echo % should fail because 1 head
 hg merge
 
--- a/tests/test-merge-default.out	Fri Aug 24 00:56:56 2007 +0200
+++ b/tests/test-merge-default.out	Sat Aug 25 11:30:11 2007 +0200
@@ -13,5 +13,8 @@
 % should succeed - 2 heads
 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
+% should fail because at tip
+abort: there is nothing to merge
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % should fail because 1 head
 abort: there is nothing to merge - use "hg update" instead