[PATCH] merge/resolve: better error messages to lead users to hg update --clean to abandon merges

Augie Fackler durin42 at gmail.com
Wed Mar 4 13:54:46 CST 2009


# HG changeset patch
# User Augie Fackler <durin42 at gmail.com>
# Date 1236193576 21600
# Node ID 30346faba5d636bb66844ffb1bbaa38e7b87616c
# Parent  b136c6c5c1c71bd7331ce3ee01fe99ca5329a7f3
merge/resolve: better error messages to lead users to hg update --clean to abandon merges.

Fixes issue1533.

diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2411,7 +2411,8 @@
     parent, p2 = repo.dirstate.parents()
     if not opts.get('rev') and p2 != nullid:
         raise util.Abort(_('uncommitted merge - please provide a '
-                           'specific revision'))
+                           'specific revision\nor abandon'
+                           " the merge with 'hg up --clean'"))
     ctx = repo[opts.get('rev')]
     node = ctx.node()
     mf = ctx.manifest()
diff --git a/mercurial/hg.py b/mercurial/hg.py
--- a/mercurial/hg.py
+++ b/mercurial/hg.py
@@ -274,7 +274,8 @@
     stats = _merge.update(repo, node, True, force, False)
     _showstats(repo, stats)
     if stats[3]:
-        repo.ui.status(_("use 'hg resolve' to retry unresolved file merges\n"))
+        repo.ui.status(_("use 'hg resolve' to retry unresolved file merges "
+                         "or 'hg up --clean' to abandon\n"))
     elif remind:
         repo.ui.status(_("(branch merge, don't forget to commit)\n"))
     return stats[3] > 0
diff --git a/tests/test-add.out b/tests/test-add.out
--- a/tests/test-add.out
+++ b/tests/test-add.out
@@ -18,7 +18,7 @@
 warning: conflicts during merge.
 merging a failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 M a
 ? a.orig
 % should fail
diff --git a/tests/test-commit-unresolved.out b/tests/test-commit-unresolved.out
--- a/tests/test-commit-unresolved.out
+++ b/tests/test-commit-unresolved.out
@@ -6,7 +6,7 @@
 warning: conflicts during merge.
 merging A failed!
 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 
 % Correct the conflict without marking the file as resolved
 abort: unresolved merge conflicts (see hg resolve)
diff --git a/tests/test-conflict.out b/tests/test-conflict.out
--- a/tests/test-conflict.out
+++ b/tests/test-conflict.out
@@ -4,7 +4,7 @@
 warning: conflicts during merge.
 merging a failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 e7fe8eb3e180+0d24b7662d3e+ tip
 <<<<<<< local
 something else
diff --git a/tests/test-confused-revert.out b/tests/test-confused-revert.out
--- a/tests/test-confused-revert.out
+++ b/tests/test-confused-revert.out
@@ -19,6 +19,7 @@
 R a
 %%% revert should fail
 abort: uncommitted merge - please provide a specific revision
+or abandon the merge with 'hg up --clean'
 %%% revert should be ok now
 undeleting a
 forgetting b
diff --git a/tests/test-convert-svn-sink.out b/tests/test-convert-svn-sink.out
--- a/tests/test-convert-svn-sink.out
+++ b/tests/test-convert-svn-sink.out
@@ -265,7 +265,7 @@
 warning: conflicts during merge.
 merging b failed!
 2 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 assuming destination b-hg
 initializing svn repo 'b-hg'
 initializing svn wc 'b-hg-wc'
diff --git a/tests/test-keyword.out b/tests/test-keyword.out
--- a/tests/test-keyword.out
+++ b/tests/test-keyword.out
@@ -458,7 +458,7 @@
 warning: conflicts during merge.
 merging m failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 % keyword stays outside conflict zone
 $Id$
 <<<<<<< local
diff --git a/tests/test-merge-internal-tools-pattern.out b/tests/test-merge-internal-tools-pattern.out
--- a/tests/test-merge-internal-tools-pattern.out
+++ b/tests/test-merge-internal-tools-pattern.out
@@ -9,7 +9,7 @@
 created new head
 # merge using internal:fail tool
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 line 1
 line 2
 third line
diff --git a/tests/test-merge-tools.out b/tests/test-merge-tools.out
--- a/tests/test-merge-tools.out
+++ b/tests/test-merge-tools.out
@@ -17,7 +17,7 @@
 warning: conflicts during merge.
 merging f failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 # cat f
 <<<<<<< local
 revision 1
@@ -37,7 +37,7 @@
 merging f
 merging f failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 # cat f
 revision 1
 space
@@ -69,7 +69,7 @@
 merging f
 merging f failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 # cat f
 revision 1
 space
@@ -86,7 +86,7 @@
 merging f
 merging f failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 # cat f
 revision 1
 space
@@ -103,7 +103,7 @@
 merging f
 merging f failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 # cat f
 revision 1
 space
@@ -120,7 +120,7 @@
 merging f
 merging f failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 # cat f
 revision 1
 space
@@ -185,7 +185,7 @@
 merging f
 merging f failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 # cat f
 revision 1
 space
@@ -204,7 +204,7 @@
 merging f
 merging f failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 # cat f
 revision 1
 space
@@ -223,7 +223,7 @@
 merging f
 merging f failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 # cat f
 revision 1
 space
@@ -385,7 +385,7 @@
 merging f
 merging f failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 # cat f
 revision 1
 space
diff --git a/tests/test-merge7.out b/tests/test-merge7.out
--- a/tests/test-merge7.out
+++ b/tests/test-merge7.out
@@ -11,7 +11,7 @@
 warning: conflicts during merge.
 merging test.txt failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 pulling from ../test-a
 searching for changes
 adding changesets
@@ -31,7 +31,7 @@
 warning: conflicts during merge.
 merging test.txt failed!
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 one
 <<<<<<< local
 two-point-five
diff --git a/tests/test-merge9.out b/tests/test-merge9.out
--- a/tests/test-merge9.out
+++ b/tests/test-merge9.out
@@ -7,7 +7,7 @@
 merging bar failed!
 merging foo and baz to baz
 1 files updated, 1 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 U bar
 R baz
 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
@@ -15,7 +15,7 @@
 merging bar failed!
 merging baz and foo to baz
 1 files updated, 1 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 % show unresolved
 U bar
 R baz
diff --git a/tests/test-resolve.out b/tests/test-resolve.out
--- a/tests/test-resolve.out
+++ b/tests/test-resolve.out
@@ -4,5 +4,5 @@
 created new head
 % failing merge
 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
-use 'hg resolve' to retry unresolved file merges
+use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
 % resolve -l, should be empty


More information about the Mercurial-devel mailing list