changeset 5225:423f4e8be115

merge with crew
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Sat, 25 Aug 2007 11:30:59 +0200
parents 9cd6578750b9 (diff) 3786ef8877d5 (current diff)
children 79279b5583c6
files
diffstat 5 files changed, 20 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -1928,10 +1928,13 @@ def merge(ui, repo, node=None, force=Non
             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
+++ b/tests/test-imerge
@@ -54,6 +54,10 @@ cat foo2
 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
+++ b/tests/test-imerge.out
@@ -41,5 +41,8 @@ description:
 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
+++ b/tests/test-merge-default
@@ -34,6 +34,10 @@ echo % should succeed - 2 heads
 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
+++ b/tests/test-merge-default.out
@@ -13,5 +13,8 @@ 0 files updated, 0 files merged, 0 files
 % 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