diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -3530,7 +3530,8 @@ _('force a merge including outstanding changes (DEPRECATED)')), ('r', 'rev', '', _('revision to merge'), _('REV')), ('P', 'preview', None, - _('review revisions to merge (no merge is performed)')) + _('review revisions to merge (no merge is performed)')), + ('', 'abort', None, _('abort the ongoing merge')), ] + mergetoolopts, _('[-P] [[-r] REV]')) def merge(ui, repo, node=None, **opts): @@ -3555,7 +3556,7 @@ See :hg:`help resolve` for information on handling file conflicts. - To undo an uncommitted merge, use :hg:`update --clean .` which + To undo an uncommitted merge, use :hg:`merge --abort` which will check out a clean copy of the original merge parent, losing all changes. @@ -3563,6 +3564,16 @@ """ opts = pycompat.byteskwargs(opts) + abort = opts.get('abort') + if abort and repo.dirstate.p2() == nullid: + cmdutil.wrongtooltocontinue(repo, _('merge')) + if abort: + if node: + raise error.Abort(_("cannot specify a node with --abort")) + if opts.get('rev'): + raise error.Abort(_("cannot specify both --rev and --abort")) + if opts.get('preview'): + raise error.Abort(_("cannot specify --preview with --abort")) if opts.get('rev') and node: raise error.Abort(_("please specify just one revision")) if not node: @@ -3571,7 +3582,7 @@ if node: node = scmutil.revsingle(repo, node).node() - if not node: + if not node and not abort: node = repo[destutil.destmerge(repo)].node() if opts.get('preview'): @@ -3592,7 +3603,7 @@ force = opts.get('force') labels = ['working copy', 'merge rev'] return hg.merge(repo, node, force=force, mergeforce=force, - labels=labels) + labels=labels, abort=abort) finally: ui.setconfig('ui', 'forcemerge', '', 'merge') diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -14,7 +14,10 @@ import shutil from .i18n import _ -from .node import nullid +from .node import ( + hex, + nullid, +) from . import ( bookmarks, @@ -844,16 +847,32 @@ return ret -def merge(repo, node, force=None, remind=True, mergeforce=False, labels=None): +def merge(repo, node, force=None, remind=True, mergeforce=False, labels=None, + abort=False): """Branch merge with node, resolving changes. Return true if any unresolved conflicts.""" - stats = mergemod.update(repo, node, True, force, mergeforce=mergeforce, - labels=labels) + if not abort: + stats = mergemod.update(repo, node, True, force, mergeforce=mergeforce, + labels=labels) + else: + ms = mergemod.mergestate.read(repo) + if ms.active(): + # there were conflicts + node = hex(ms._local) + else: + # there were no conficts, mergestate was not stored + node = repo['.'].hex() + + repo.ui.status(_("aborting the merge, updating back to" + " %s\n") % node[:12]) + stats = mergemod.update(repo, node, branchmerge=False, force=True, + labels=labels) + _showstats(repo, stats) if stats[3]: repo.ui.status(_("use 'hg resolve' to retry unresolved file merges " - "or 'hg update -C .' to abandon\n")) - elif remind: + "or 'hg merge --abort' to abandon\n")) + elif remind and not abort: repo.ui.status(_("(branch merge, don't forget to commit)\n")) return stats[3] > 0 diff --git a/tests/test-add.t b/tests/test-add.t --- a/tests/test-add.t +++ b/tests/test-add.t @@ -104,7 +104,7 @@ merging a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg st M a diff --git a/tests/test-commit-unresolved.t b/tests/test-commit-unresolved.t --- a/tests/test-commit-unresolved.t +++ b/tests/test-commit-unresolved.t @@ -21,13 +21,63 @@ $ commit "D" 3 created new head +State before the merge + + $ hg status + $ hg id + e45016d2b3d3 tip + $ hg summary + parent: 3:e45016d2b3d3 tip + D + branch: default + commit: (clean) + update: 2 new changesets, 2 branch heads (merge) + phases: 4 draft + +Testing the abort functionality first in case of conflicts + + $ hg merge --abort + abort: no merge in progress + [255] + $ hg merge + merging A + warning: conflicts while merging A! (edit, then use 'hg resolve --mark') + 1 files updated, 0 files merged, 0 files removed, 1 files unresolved + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon + [1] + + $ hg merge --abort e4501 + abort: cannot specify a node with --abort + [255] + $ hg merge --abort --rev e4501 + abort: cannot specify both --rev and --abort + [255] + + $ hg merge --abort + aborting the merge, updating back to e45016d2b3d3 + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + +Checking that we got back in the same state + + $ hg status + ? A.orig + $ hg id + e45016d2b3d3 tip + $ hg summary + parent: 3:e45016d2b3d3 tip + D + branch: default + commit: 1 unknown (clean) + update: 2 new changesets, 2 branch heads (merge) + phases: 4 draft + Merging a conflict araises $ hg merge merging A warning: conflicts while merging A! (edit, then use 'hg resolve --mark') 1 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] Correct the conflict without marking the file as resolved @@ -52,7 +102,7 @@ merging A warning: conflicts while merging A! (edit, then use 'hg resolve --mark') 1 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg rm --force A $ hg commit -m merged @@ -64,4 +114,28 @@ $ hg commit -m merged created new head +Testing the abort functionality in case of no conflicts + + $ hg update -C 0 + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ addcommit "E" 4 + created new head + $ hg id + 68352a18a7c4 tip + + $ hg merge -r 4 + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + + $ hg merge --preview --abort + abort: cannot specify --preview with --abort + [255] + + $ hg merge --abort + aborting the merge, updating back to 68352a18a7c4 + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + + $ hg id + 68352a18a7c4 tip + $ cd .. diff --git a/tests/test-completion.t b/tests/test-completion.t --- a/tests/test-completion.t +++ b/tests/test-completion.t @@ -229,7 +229,7 @@ forget: include, exclude init: ssh, remotecmd, insecure log: follow, follow-first, date, copies, keyword, rev, line-range, removed, only-merges, user, only-branch, branch, prune, patch, git, limit, no-merges, stat, graph, style, template, include, exclude - merge: force, rev, preview, tool + merge: force, rev, preview, abort, tool pull: update, force, rev, bookmark, branch, ssh, remotecmd, insecure push: force, rev, bookmark, branch, new-branch, pushvars, ssh, remotecmd, insecure remove: after, force, subrepos, include, exclude diff --git a/tests/test-conflict.t b/tests/test-conflict.t --- a/tests/test-conflict.t +++ b/tests/test-conflict.t @@ -38,7 +38,7 @@ merging a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg id @@ -91,7 +91,7 @@ merging a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ cat a @@ -182,7 +182,7 @@ merging a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ cat a @@ -207,7 +207,7 @@ merging a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ cat a Small Mathematical Series. @@ -254,7 +254,7 @@ merging a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 1 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg resolve --tool :merge-other a merging a diff --git a/tests/test-convert-svn-sink.t b/tests/test-convert-svn-sink.t --- a/tests/test-convert-svn-sink.t +++ b/tests/test-convert-svn-sink.t @@ -384,7 +384,7 @@ merging b warning: conflicts while merging b! (edit, then use 'hg resolve --mark') 2 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg --cwd b revert -r 2 b $ hg --cwd b resolve -m b diff --git a/tests/test-fileset.t b/tests/test-fileset.t --- a/tests/test-fileset.t +++ b/tests/test-fileset.t @@ -226,7 +226,7 @@ merging b2 warning: conflicts while merging b2! (edit, then use 'hg resolve --mark') * files updated, 0 files merged, 1 files removed, 1 files unresolved (glob) - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ fileset 'resolved()' $ fileset 'unresolved()' diff --git a/tests/test-keyword.t b/tests/test-keyword.t --- a/tests/test-keyword.t +++ b/tests/test-keyword.t @@ -1138,7 +1138,7 @@ merging m warning: conflicts while merging m! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ cat m $Id$ diff --git a/tests/test-largefiles-update.t b/tests/test-largefiles-update.t --- a/tests/test-largefiles-update.t +++ b/tests/test-largefiles-update.t @@ -138,7 +138,7 @@ getting changed largefiles 1 largefiles updated, 0 removed 0 files updated, 1 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg status -A large1 M large1 diff --git a/tests/test-lfconvert.t b/tests/test-lfconvert.t --- a/tests/test-lfconvert.t +++ b/tests/test-lfconvert.t @@ -131,7 +131,7 @@ warning: stuff/maybelarge.dat looks like a binary file. warning: conflicts while merging stuff/maybelarge.dat! (edit, then use 'hg resolve --mark') 0 files updated, 1 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg cat -r . sub/maybelarge.dat > stuff/maybelarge.dat $ hg resolve -m stuff/maybelarge.dat diff --git a/tests/test-log.t b/tests/test-log.t --- a/tests/test-log.t +++ b/tests/test-log.t @@ -1695,7 +1695,7 @@ merging foo warning: conflicts while merging foo! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ echo 'merge 1' > foo $ hg resolve -m foo @@ -1706,7 +1706,7 @@ merging foo warning: conflicts while merging foo! (edit, then use 'hg resolve --mark') 1 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ echo 'merge 2' > foo $ hg resolve -m foo diff --git a/tests/test-merge-changedelete.t b/tests/test-merge-changedelete.t --- a/tests/test-merge-changedelete.t +++ b/tests/test-merge-changedelete.t @@ -61,7 +61,7 @@ merging file3 warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 3 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ status @@ -128,7 +128,7 @@ merging file3 warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') 0 files updated, 2 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ status @@ -205,7 +205,7 @@ merging file3 warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') 0 files updated, 1 files merged, 1 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ status @@ -269,7 +269,7 @@ merging file3 warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 1 files removed, 2 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ status @@ -422,7 +422,7 @@ $ hg merge --tool :fail 0 files updated, 0 files merged, 0 files removed, 3 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ status 2>&1 | tee $TESTTMP/fail.status --- status --- @@ -479,7 +479,7 @@ use (c)hanged version, leave (d)eleted, or leave (u)nresolved? keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved for file3? 0 files updated, 0 files merged, 0 files removed, 3 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ status 2>&1 | tee $TESTTMP/prompt.status --- status --- @@ -538,7 +538,7 @@ use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved for file3? u 0 files updated, 0 files merged, 0 files removed, 3 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ status --- status --- @@ -596,7 +596,7 @@ merging file3 warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 3 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ status --- status --- diff --git a/tests/test-merge-criss-cross.t b/tests/test-merge-criss-cross.t --- a/tests/test-merge-criss-cross.t +++ b/tests/test-merge-criss-cross.t @@ -111,7 +111,7 @@ picked tool ':dump' for f2 (binary False symlink False changedelete False) my f2@6373bbfdae1d+ other f2@e673248094b1 ancestor f2@0f6b37dbe527 3 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ f --dump --recurse * @@ -158,7 +158,7 @@ getting d1/f3 to d2/f3 merging f2 3 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] Redo merge with merge.preferancestor="*" to enable bid merge diff --git a/tests/test-merge-force.t b/tests/test-merge-force.t --- a/tests/test-merge-force.t +++ b/tests/test-merge-force.t @@ -216,7 +216,7 @@ warning: conflicts while merging missing_content2_missing_content4-tracked! (edit, then use 'hg resolve --mark') warning: conflicts while merging missing_content2_missing_content4-untracked! (edit, then use 'hg resolve --mark') 18 files updated, 3 files merged, 8 files removed, 35 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon Check which files need to be resolved (should correspond to the output above). This should be the files for which the base (1st filename segment), the remote diff --git a/tests/test-merge-internal-tools-pattern.t b/tests/test-merge-internal-tools-pattern.t --- a/tests/test-merge-internal-tools-pattern.t +++ b/tests/test-merge-internal-tools-pattern.t @@ -43,7 +43,7 @@ $ hg merge 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ cat f diff --git a/tests/test-merge-remove.t b/tests/test-merge-remove.t --- a/tests/test-merge-remove.t +++ b/tests/test-merge-remove.t @@ -106,7 +106,7 @@ use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u merging foo1 and foo to foo1 0 files updated, 1 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ cat bar bleh diff --git a/tests/test-merge-tools.t b/tests/test-merge-tools.t --- a/tests/test-merge-tools.t +++ b/tests/test-merge-tools.t @@ -71,7 +71,7 @@ merging f warning: conflicts while merging f! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -98,7 +98,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 or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -120,7 +120,7 @@ merging f warning: conflicts while merging f! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ rm false @@ -134,7 +134,7 @@ merging f warning: conflicts while merging f! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ rmdir false @@ -170,7 +170,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 or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -193,7 +193,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 or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -215,7 +215,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 or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -238,7 +238,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 or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -261,7 +261,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 or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -371,7 +371,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 or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -397,7 +397,7 @@ couldn't find merge tool true (for pattern f) merging f failed! 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -423,7 +423,7 @@ couldn't find merge tool true (for pattern f) merging f failed! 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -449,7 +449,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 or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -471,7 +471,7 @@ # hg update -C 1 $ hg merge -r 2 --config ui.merge=internal:fail 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -533,7 +533,7 @@ $ hg merge -r 2 --config ui.merge=internal:prompt keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved for f? u 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -557,7 +557,7 @@ > EOF keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved for f? u 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -579,7 +579,7 @@ $ hg merge -r 2 --config ui.merge=internal:prompt --config ui.interactive=true keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved for f? 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -637,7 +637,7 @@ $ hg merge -r 2 --config ui.merge=internal:dump merging f 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -707,7 +707,7 @@ $ hg merge -r 3 --config ui.merge=internal:forcedump merging f 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -749,7 +749,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 or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -775,7 +775,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 or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -800,7 +800,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 or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -1240,7 +1240,7 @@ was merge successful (yn)? n merging f failed! 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ aftermerge # cat f @@ -1265,7 +1265,7 @@ warning: internal :merge cannot merge symlinks for f warning: conflicts while merging f! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] #endif diff --git a/tests/test-merge-types.t b/tests/test-merge-types.t --- a/tests/test-merge-types.t +++ b/tests/test-merge-types.t @@ -42,7 +42,7 @@ warning: internal :merge cannot merge symlinks for a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ tellmeabout a @@ -75,7 +75,7 @@ warning: internal :union cannot merge symlinks for a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ tellmeabout a @@ -98,7 +98,7 @@ warning: internal :merge3 cannot merge symlinks for a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ tellmeabout a @@ -120,7 +120,7 @@ my a@3574f3e69b1c+ other a@521a1e40188f ancestor a@c334dc3be0da warning: internal :merge-local cannot merge symlinks for a 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ tellmeabout a @@ -142,7 +142,7 @@ my a@3574f3e69b1c+ other a@521a1e40188f ancestor a@c334dc3be0da warning: internal :merge-other cannot merge symlinks for a 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ tellmeabout a @@ -211,7 +211,7 @@ warning: internal :merge cannot merge symlinks for f warning: conflicts while merging f! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ tellmeabout f f is a symlink: @@ -223,7 +223,7 @@ warning: internal :merge cannot merge symlinks for f warning: conflicts while merging f! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ tellmeabout f f is a plain file with content: @@ -250,7 +250,7 @@ warning: internal :merge cannot merge symlinks for f warning: conflicts while merging f! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ tellmeabout f f is a symlink: @@ -262,7 +262,7 @@ warning: internal :merge cannot merge symlinks for f warning: conflicts while merging f! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ tellmeabout f f is a plain file with content: @@ -354,7 +354,7 @@ warning: conflicts while merging b! (edit, then use 'hg resolve --mark') warning: conflicts while merging bx! (edit, then use 'hg resolve --mark') 3 files updated, 0 files merged, 0 files removed, 6 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg resolve -l U a @@ -416,7 +416,7 @@ warning: conflicts while merging b! (edit, then use 'hg resolve --mark') warning: conflicts while merging bx! (edit, then use 'hg resolve --mark') 3 files updated, 0 files merged, 0 files removed, 6 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ tellmeabout a a is a plain file with content: diff --git a/tests/test-merge7.t b/tests/test-merge7.t --- a/tests/test-merge7.t +++ b/tests/test-merge7.t @@ -47,7 +47,7 @@ merging test.txt warning: conflicts while merging test.txt! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] resolve conflict $ cat >test.txt <<"EOF" @@ -96,7 +96,7 @@ my test.txt@50c3a7e29886+ other test.txt@40d11a4173a8 ancestor test.txt@96b70246a118 warning: conflicts while merging test.txt! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ cat test.txt diff --git a/tests/test-merge9.t b/tests/test-merge9.t --- a/tests/test-merge9.t +++ b/tests/test-merge9.t @@ -30,7 +30,7 @@ merging foo and baz to baz merging bar failed! 1 files updated, 1 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg resolve -l U bar @@ -44,7 +44,7 @@ merging baz and foo to baz merging bar failed! 1 files updated, 1 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] show unresolved diff --git a/tests/test-mq-qnew.t b/tests/test-mq-qnew.t --- a/tests/test-mq-qnew.t +++ b/tests/test-mq-qnew.t @@ -162,7 +162,7 @@ merging a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon (no more unresolved files) abort: cannot manage merge changesets $ rm -r sandbox @@ -241,7 +241,7 @@ merging a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon (no more unresolved files) abort: cannot manage merge changesets $ rm -r sandbox diff --git a/tests/test-pathconflicts-basic.t b/tests/test-pathconflicts-basic.t --- a/tests/test-pathconflicts-basic.t +++ b/tests/test-pathconflicts-basic.t @@ -39,7 +39,7 @@ moving a to a~853701544ac3 getting a/b 1 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg update --clean . 1 files updated, 0 files merged, 1 files removed, 0 files unresolved diff --git a/tests/test-pathconflicts-merge.t b/tests/test-pathconflicts-merge.t --- a/tests/test-pathconflicts-merge.t +++ b/tests/test-pathconflicts-merge.t @@ -53,7 +53,7 @@ moving a/b to a/b~0ed027b96f31 getting a/b/c/d 1 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg status M a/b/c/d @@ -77,7 +77,7 @@ the local file has been renamed to a/b~2ea68033e3be resolve manually then use 'hg resolve --mark a/b' 1 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg status M a/b/c/d @@ -105,7 +105,7 @@ the remote file has been renamed to a/b~0ed027b96f31 resolve manually then use 'hg resolve --mark a/b' 1 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg status A a/b~0ed027b96f31 @@ -128,7 +128,7 @@ the remote file has been renamed to a/b~2ea68033e3be resolve manually then use 'hg resolve --mark a/b' 1 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg mv a/b~2ea68033e3be a/b.old $ readlink.py a/b.old diff --git a/tests/test-rename-dir-merge.t b/tests/test-rename-dir-merge.t --- a/tests/test-rename-dir-merge.t +++ b/tests/test-rename-dir-merge.t @@ -134,7 +134,7 @@ merging b/c and a/c to b/c warning: conflicts while merging b/c! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg st -A M b/c @@ -164,7 +164,7 @@ merging a/c and b/c to b/c warning: conflicts while merging b/c! (edit, then use 'hg resolve --mark') 2 files updated, 0 files merged, 2 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg st -A M b/a diff --git a/tests/test-rename-merge2.t b/tests/test-rename-merge2.t --- a/tests/test-rename-merge2.t +++ b/tests/test-rename-merge2.t @@ -713,7 +713,7 @@ launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) merge tool returned: 0 0 files updated, 2 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon -------------- M a M b @@ -758,7 +758,7 @@ launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) merge tool returned: 0 0 files updated, 2 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon -------------- M b C a diff --git a/tests/test-resolve.t b/tests/test-resolve.t --- a/tests/test-resolve.t +++ b/tests/test-resolve.t @@ -34,7 +34,7 @@ $ hg up -qC 2 $ hg merge --tool=internal:fail 1 0 files updated, 0 files merged, 0 files removed, 2 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] resolve -l should contain unresolved entries @@ -223,7 +223,7 @@ $ hg up -qC 2 $ hg merge --tool=internal:fail 1 0 files updated, 0 files merged, 0 files removed, 2 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] resolve without arguments should suggest --all diff --git a/tests/test-sparse-profiles.t b/tests/test-sparse-profiles.t --- a/tests/test-sparse-profiles.t +++ b/tests/test-sparse-profiles.t @@ -125,7 +125,7 @@ warning: conflicts while merging backend.sparse! (edit, then use 'hg resolve --mark') warning: conflicts while merging data.py! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 2 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ rm *.orig diff --git a/tests/test-sparse.t b/tests/test-sparse.t --- a/tests/test-sparse.t +++ b/tests/test-sparse.t @@ -224,7 +224,7 @@ merging hide warning: conflicts while merging hide! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg debugsparse [exclude] diff --git a/tests/test-status-color.t b/tests/test-status-color.t --- a/tests/test-status-color.t +++ b/tests/test-status-color.t @@ -379,7 +379,7 @@ warning: conflicts while merging a! (edit, then use 'hg resolve --mark') warning: conflicts while merging b! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 2 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg resolve -m b diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t --- a/tests/test-subrepo.t +++ b/tests/test-subrepo.t @@ -321,7 +321,7 @@ my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a warning: conflicts while merging t! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon subrepo t: merge with t:7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4:hg 0 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) diff --git a/tests/test-tag.t b/tests/test-tag.t --- a/tests/test-tag.t +++ b/tests/test-tag.t @@ -708,7 +708,7 @@ the following 1 tags are in conflict: t7 automatic tag merging of .hgtags failed! (use 'hg resolve --tool :merge' or another merge tool of your choice) 2 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon [1] $ hg resolve -l U .hgtags