Mercurial > hg
diff tests/test-merge-tools.out @ 7731:737f274d1915
test-merge-tools
Some tests of merge-tools configuration and selection, mostly excercising
filemerge.py
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sun, 25 Jan 2009 21:20:11 +0100 |
parents | |
children | 3793802ea41b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-merge-tools.out Sun Jan 25 21:20:11 2009 +0100 @@ -0,0 +1,400 @@ +# 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 +# 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 +# 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 +# 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 +# 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 +# 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=/bin/nonexistingmergetool +sh: /bin/nonexistingmergetool: No such file or directory +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 +# 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=/bin/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 tac: +[merge-tools] +false.whatever= +true.priority=1 +true.executable=cat +# hg update -C 1 +# hg merge -r 2 --config merge-patterns.f=tac +space +revision 1 +space +revision 0 +space +revision 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 + +# 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 +# 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=/bin/nonexistingmergetool +sh: /bin/nonexistingmergetool: No such file or directory +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 +# 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 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 -r 2 --config merge-tools.true.checkchanged=1 +revision 1 +space +revision 0 +space +revision 2 +space +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 +# cat f +revision 1 +space +# hg stat +M f +? f.orig +