Mercurial > hg-stable
changeset 27164:88d5db4b155c
filemerge: default regular prompts to 'leave unresolved' (BC)
It makes far more sense to leave these conflicts unresolved and kick back to
the user than to just assume that the local version be chosen. There are almost
certainly buggy scripts and applications using Mercurial in the wild that do
merges or rebases non-interactively, and then assume that if the operation
succeeded there's nothing the user needs to pay attention to.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Tue, 01 Dec 2015 09:48:38 -0800 |
parents | 27b89a0957ec |
children | 70884715725e |
files | mercurial/filemerge.py tests/test-merge-changedelete.t tests/test-merge-tools.t tests/test-merge-types.t |
diffstat | 4 files changed, 19 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/filemerge.py Mon Nov 30 13:43:55 2015 -0800 +++ b/mercurial/filemerge.py Tue Dec 01 09:48:38 2015 -0800 @@ -253,7 +253,7 @@ index = ui.promptchoice( _("no tool found to merge %s\n" "keep (l)ocal, take (o)ther, or leave (u)nresolved?" - "$$ &Local $$ &Other $$ &Unresolved") % fd, 0) + "$$ &Local $$ &Other $$ &Unresolved") % fd, 2) choice = ['local', 'other', 'unresolved'][index] if choice == 'other':
--- a/tests/test-merge-changedelete.t Mon Nov 30 13:43:55 2015 -0800 +++ b/tests/test-merge-changedelete.t Tue Dec 01 09:48:38 2015 -0800 @@ -474,9 +474,10 @@ remote changed file2 which local deleted use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c no tool found to merge file3 - keep (l)ocal, take (o)ther, or leave (u)nresolved? l - 0 files updated, 3 files merged, 0 files removed, 0 files unresolved - (branch merge, don't forget to commit) + keep (l)ocal, take (o)ther, or leave (u)nresolved? u + 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 + [1] $ status --- status --- M file2 @@ -485,7 +486,7 @@ --- resolve --list --- R file1 R file2 - R file3 + U file3 --- debugmergestate --- * version 2 records local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 @@ -498,7 +499,7 @@ local path: file2 (flags "") ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) - file: file3 (record type "F", state "r", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) + file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) local path: file3 (flags "") ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
--- a/tests/test-merge-tools.t Mon Nov 30 13:43:55 2015 -0800 +++ b/tests/test-merge-tools.t Tue Dec 01 09:48:38 2015 -0800 @@ -532,9 +532,10 @@ # hg update -C 1 $ hg merge -r 2 --config ui.merge=internal:prompt no tool found to merge f - keep (l)ocal, take (o)ther, or leave (u)nresolved? l - 0 files updated, 1 files merged, 0 files removed, 0 files unresolved - (branch merge, don't forget to commit) + keep (l)ocal, take (o)ther, or leave (u)nresolved? 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 + [1] $ aftermerge # cat f revision 1 @@ -542,7 +543,7 @@ # hg stat M f # hg resolve --list - R f + U f ui.merge specifies :prompt, with 'leave unresolved' chosen @@ -619,8 +620,8 @@ U f $ hg resolve --all --config ui.merge=internal:prompt no tool found to merge f - keep (l)ocal, take (o)ther, or leave (u)nresolved? l - (no more unresolved files) + keep (l)ocal, take (o)ther, or leave (u)nresolved? u + [1] $ aftermerge # cat f revision 1 @@ -629,7 +630,7 @@ M f ? f.orig # hg resolve --list - R f + U f ui.merge specifies internal:dump:
--- a/tests/test-merge-types.t Mon Nov 30 13:43:55 2015 -0800 +++ b/tests/test-merge-types.t Tue Dec 01 09:48:38 2015 -0800 @@ -172,8 +172,10 @@ (couldn't find merge tool hgmerge|tool hgmerge can't handle symlinks) (re) picked tool ':prompt' for a (binary False symlink True changedelete False) no tool found to merge a - keep (l)ocal, take (o)ther, or leave (u)nresolved? l - 0 files updated, 1 files merged, 0 files removed, 0 files unresolved + keep (l)ocal, take (o)ther, or leave (u)nresolved? u + 0 files updated, 0 files merged, 0 files removed, 1 files unresolved + use 'hg resolve' to retry unresolved file merges + [1] $ hg diff --git diff --git a/a b/a old mode 120000