diff -r 469850088fc1 -r 3cb0559e44d0 tests/test-merge-tools.out --- a/tests/test-merge-tools.out Wed Oct 20 23:39:48 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,547 +0,0 @@ -# revision 0 -adding f -# revision 1 -# revision 2 -created new head -# revision 3 - simple to merge -created new head - - -Tool selection - -# default is internal merge: -[merge-tools] -# hg update -C 1 -# hg merge -r 2 -merging f -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 or 'hg update -C' to abandon -# cat f -<<<<<<< local -revision 1 -======= -revision 2 ->>>>>>> other -space -# hg stat -M f -? f.orig - -# simplest hgrc using false for merge: -[merge-tools] -false.whatever= -# hg update -C 1 -# hg merge -r 2 -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 -# cat f -revision 1 -space -# hg stat -M f -? f.orig - -# true with higher .priority gets precedence: -[merge-tools] -false.whatever= -true.priority=1 -# hg update -C 1 -# hg merge -r 2 -merging f -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -revision 1 -space -# hg stat -M f - -# unless lowered on command line: -[merge-tools] -false.whatever= -true.priority=1 -# hg update -C 1 -# hg merge -r 2 --config merge-tools.true.priority=-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 -# cat f -revision 1 -space -# hg stat -M f -? f.orig - -# or false set higher on command line: -[merge-tools] -false.whatever= -true.priority=1 -# hg update -C 1 -# hg merge -r 2 --config merge-tools.false.priority=117 -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 -# cat f -revision 1 -space -# hg stat -M f -? f.orig - -# or true.executable not found in PATH: -[merge-tools] -false.whatever= -true.priority=1 -# hg update -C 1 -# hg merge -r 2 --config merge-tools.true.executable=nonexistingmergetool -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 -# cat f -revision 1 -space -# hg stat -M f -? f.orig - -# or true.executable with bogus path: -[merge-tools] -false.whatever= -true.priority=1 -# hg update -C 1 -# hg merge -r 2 --config merge-tools.true.executable=/nonexisting/mergetool -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 -# cat f -revision 1 -space -# hg stat -M f -? f.orig - -# but true.executable set to cat found in PATH works: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 2 -revision 1 -space -revision 0 -space -revision 2 -space -merging f -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -revision 1 -space -# hg stat -M f - -# and true.executable set to cat with path works: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 2 --config merge-tools.true.executable=cat -revision 1 -space -revision 0 -space -revision 2 -space -merging f -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -revision 1 -space -# hg stat -M f - - -Tool selection and merge-patterns - -# merge-patterns specifies new tool false: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 2 --config merge-patterns.f=false -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 -# cat f -revision 1 -space -# hg stat -M f -? f.orig - -# merge-patterns specifies executable not found in PATH and gets warning: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=nonexistingmergetool -couldn't find merge tool true specified for f -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 -# cat f -revision 1 -space -# hg stat -M f -? f.orig - -# merge-patterns specifies executable with bogus path and gets warning: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/nonexisting/mergetool -couldn't find merge tool true specified for f -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 -# cat f -revision 1 -space -# hg stat -M f -? f.orig - - -ui.merge overrules priority - -# ui.merge specifies false: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 2 --config ui.merge=false -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 -# cat f -revision 1 -space -# hg stat -M f -? f.orig - -# ui.merge specifies internal:fail: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# 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 -# cat f -revision 1 -space -# hg stat -M f - -# ui.merge specifies internal:local: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 2 --config ui.merge=internal:local -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -revision 1 -space -# hg stat -M f - -# ui.merge specifies internal:other: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 2 --config ui.merge=internal:other -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -revision 2 -space -# hg stat -M f - -# ui.merge specifies internal:prompt: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 2 --config ui.merge=internal:prompt - no tool found to merge f -keep (l)ocal or take (o)ther? l -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -revision 1 -space -# hg stat -M f - -# ui.merge specifies internal:dump: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# 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 -# cat f -revision 1 -space -# hg stat -M f -? f.base -? f.local -? f.orig -? f.other - -f.base: -revision 0 -space -f.local: -revision 1 -space -f.other: -revision 2 -space - -# ui.merge specifies internal:other but is overruled by pattern for false: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 2 --config ui.merge=internal:other --config merge-patterns.f=false -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 -# cat f -revision 1 -space -# hg stat -M f -? f.orig - - -Premerge - -# Default is silent simplemerge: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 3 -merging f -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -revision 1 -space -revision 3 -# hg stat -M f - -# .premerge=True is same: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 3 --config merge-tools.true.premerge=True -merging f -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -revision 1 -space -revision 3 -# hg stat -M f - -# .premerge=False executes merge-tool: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -r 3 --config merge-tools.true.premerge=False -revision 1 -space -revision 0 -space -revision 0 -space -revision 3 -merging f -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -revision 1 -space -# hg stat -M f - - -Tool execution - -# set tools.args explicit to include $base $local $other $output: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -==> ... <== -revision 0 -space - -==> ... <== -revision 1 -space - -==> ... <== -revision 2 -space - -==> ... <== -revision 1 -space -merging f -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -revision 1 -space -# hg stat -M f - -# Merge with "echo mergeresult > $local": -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -merging f -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -mergeresult -# hg stat -M f - -# - and $local is the file f: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -merging f -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -mergeresult -# hg stat -M f - -# Merge with "echo mergeresult > $output" - the variable is a bit magic: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -merging f -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -mergeresult -# hg stat -M f - -# Merge using tool with a path that must be quoted: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -merging f -0 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -# cat f -revision 0 -space -revision 1 -space -revision 2 -space -# hg stat -M f - - -Merge post-processing - -# cat is a bad merge-tool and doesn't change: -[merge-tools] -false.whatever= -true.priority=1 -true.executable=cat -# hg update -C 1 -# hg merge -y -r 2 --config merge-tools.true.checkchanged=1 -revision 1 -space -revision 0 -space -revision 2 -space -merging f - output file f appears unchanged -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 -# cat f -revision 1 -space -# hg stat -M f -? f.orig -