##// END OF EJS Templates
sslutil: require TLS 1.1+ when supported...
sslutil: require TLS 1.1+ when supported Currently, Mercurial will use TLS 1.0 or newer when connecting to remote servers, selecting the highest TLS version supported by both peers. On older Pythons, only TLS 1.0 is available. On newer Pythons, TLS 1.1 and 1.2 should be available. Security professionals recommend avoiding TLS 1.0 if possible. PCI DSS 3.1 "strongly encourages" the use of TLS 1.2. Known attacks like BEAST and POODLE exist against TLS 1.0 (although mitigations are available and properly configured servers aren't vulnerable). I asked Eric Rescorla - Mozilla's resident crypto expert - whether Mercurial should drop support for TLS 1.0. His response was "if you can get away with it." Essentially, a number of servers on the Internet don't support TLS 1.1+. This is why web browsers continue to support TLS 1.0 despite desires from security experts. This patch changes Mercurial's default behavior on modern Python versions to require TLS 1.1+, thus avoiding known security issues with TLS 1.0 and making Mercurial more secure by default. Rather than drop TLS 1.0 support wholesale, we still allow TLS 1.0 to be used if configured. This is a compromise solution - ideally we'd disallow TLS 1.0. However, since we're not sure how many Mercurial servers don't support TLS 1.1+ and we're not sure how much user inconvenience this change will bring, I think it is prudent to ship an escape hatch that still allows usage of TLS 1.0. In the default case our users get better security. In the worst case, they are no worse off than before this patch. This patch has no effect when running on Python versions that don't support TLS 1.1+. As the added test shows, connecting to a server that doesn't support TLS 1.1+ will display a warning message with a link to our wiki, where we can guide people to configure their client to allow less secure connections.

File last commit:

r27164:88d5db4b default
r29560:303e9300 default
Show More
test-merge-tools.t
1211 lines | 25.3 KiB | text/troff | Tads3Lexer
/ tests / test-merge-tools.t
Matt Mackall
tests: unify test-merge-tools
r12460 test merge-tools configuration - mostly exercising filemerge.py
$ unset HGMERGE # make sure HGMERGE doesn't interfere with the test
$ hg init
revision 0
$ echo "revision 0" > f
$ echo "space" >> f
$ hg commit -Am "revision 0"
adding f
revision 1
$ echo "revision 1" > f
$ echo "space" >> f
$ hg commit -Am "revision 1"
$ hg update 0 > /dev/null
revision 2
$ echo "revision 2" > f
$ echo "space" >> f
$ hg commit -Am "revision 2"
created new head
$ hg update 0 > /dev/null
revision 3 - simple to merge
$ echo "revision 3" >> f
$ hg commit -Am "revision 3"
created new head
Pierre-Yves David
test-merge-tools: introduce a "revision 4" that merges with conflict...
r22029
revision 4 - hard to merge
$ hg update 0 > /dev/null
$ echo "revision 4" > f
$ hg commit -Am "revision 4"
created new head
Matt Mackall
tests: unify test-merge-tools
r12460 $ echo "[merge-tools]" > .hg/hgrc
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Mackall
tests: unify test-merge-tools
r12460 $ beforemerge() {
> cat .hg/hgrc
> echo "# hg update -C 1"
> hg update -C 1 > /dev/null
> }
$ aftermerge() {
> echo "# cat f"
> cat f
> echo "# hg stat"
> hg stat
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 > echo "# hg resolve --list"
> hg resolve --list
Matt Mackall
tests: unify test-merge-tools
r12460 > rm -f f.orig
> }
Tool selection
default is internal merge:
$ beforemerge
[merge-tools]
# hg update -C 1
hg merge -r 2
override $PATH to ensure hgmerge not visible; use $PYTHON in case we're
running from a devel copy, not a temp installation
timeless@mozdev.org
test-merge-tools: include /usr/sbin in path for sysctl (issue4813)...
r26168 $ PATH="$BINDIR:/usr/sbin" $PYTHON "$BINDIR"/hg merge -r 2
Matt Mackall
tests: unify test-merge-tools
r12460 merging f
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging f! (edit, then use 'hg resolve --mark')
Matt Mackall
tests: unify test-merge-tools
r12460 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
Pierre-Yves David
merge: drop the quotes around commit description...
r21693 <<<<<<< local: ef83787e2614 - test: revision 1
Matt Mackall
tests: unify test-merge-tools
r12460 revision 1
=======
revision 2
Pierre-Yves David
merge: drop the quotes around commit description...
r21693 >>>>>>> other: 0185f4e0cf02 - test: revision 2
Matt Mackall
tests: unify test-merge-tools
r12460 space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
simplest hgrc using false for merge:
$ echo "false.whatever=" >> .hg/hgrc
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
Matt Mackall
tests: fix portability issue with test-merge-tools...
r24809 #if unix-permissions
Mads Kiilerich
tests: test findexe() access check fixed in 58f96703a9ab
r15545 unexecutable file in $PATH shouldn't be found:
Matt Mackall
tests: fix portability issue with test-merge-tools...
r24809 $ echo "echo fail" > false
Mads Kiilerich
tests: test findexe() access check fixed in 58f96703a9ab
r15545 $ hg up -qC 1
timeless@mozdev.org
test-merge-tools: include /usr/sbin in path for sysctl (issue4813)...
r26168 $ PATH="`pwd`:$BINDIR:/usr/sbin" $PYTHON "$BINDIR"/hg merge -r 2
Mads Kiilerich
tests: test findexe() access check fixed in 58f96703a9ab
r15545 merging f
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging f! (edit, then use 'hg resolve --mark')
Mads Kiilerich
tests: test findexe() access check fixed in 58f96703a9ab
r15545 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]
$ rm false
Matt Mackall
tests: fix portability issue with test-merge-tools...
r24809 #endif
Mads Kiilerich
tests: test findexe() access check fixed in 58f96703a9ab
r15545 executable directory in $PATH shouldn't be found:
$ mkdir false
$ hg up -qC 1
timeless@mozdev.org
test-merge-tools: include /usr/sbin in path for sysctl (issue4813)...
r26168 $ PATH="`pwd`:$BINDIR:/usr/sbin" $PYTHON "$BINDIR"/hg merge -r 2
Mads Kiilerich
tests: test findexe() access check fixed in 58f96703a9ab
r15545 merging f
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging f! (edit, then use 'hg resolve --mark')
Mads Kiilerich
tests: test findexe() access check fixed in 58f96703a9ab
r15545 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]
$ rmdir false
Matt Mackall
tests: unify test-merge-tools
r12460 true with higher .priority gets precedence:
$ echo "true.priority=1" >> .hg/hgrc
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2
Matt Mackall
tests: unify test-merge-tools
r12460 merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Matt Mackall
tests: unify test-merge-tools
r12460
unless lowered on command line:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --config merge-tools.true.priority=-7
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
or false set higher on command line:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --config merge-tools.false.priority=117
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
Augie Fackler
merge-tools: allow marking a mergetool as completely disabled...
r26730 or true set to disabled:
$ beforemerge
[merge-tools]
false.whatever=
true.priority=1
# hg update -C 1
$ hg merge -r 2 --config merge-tools.true.disabled=yes
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
[1]
$ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Augie Fackler
merge-tools: allow marking a mergetool as completely disabled...
r26730
Matt Mackall
tests: unify test-merge-tools
r12460 or true.executable not found in PATH:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
# hg update -C 1
timeless@mozdev.org
spelling: nonexistent
r17492 $ hg merge -r 2 --config merge-tools.true.executable=nonexistentmergetool
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
or true.executable with bogus path:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
# hg update -C 1
timeless@mozdev.org
spelling: nonexistent
r17492 $ hg merge -r 2 --config merge-tools.true.executable=/nonexistent/mergetool
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
but true.executable set to cat found in PATH works:
$ echo "true.executable=cat" >> .hg/hgrc
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2
Mads Kiilerich
util: flush stdout before calling external processes...
r13439 merging f
Matt Mackall
tests: unify test-merge-tools
r12460 revision 1
space
revision 0
space
revision 2
space
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Matt Mackall
tests: unify test-merge-tools
r12460
and true.executable set to cat with path works:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --config merge-tools.true.executable=cat
Mads Kiilerich
util: flush stdout before calling external processes...
r13439 merging f
Matt Mackall
tests: unify test-merge-tools
r12460 revision 1
space
revision 0
space
revision 2
space
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Matt Mackall
tests: unify test-merge-tools
r12460
Mads Kiilerich
tests: add some missing #if's / hghave requirements...
r16972 #if unix-permissions
Greg Ward
merge: expand environment variables and ~/ in tool.executable...
r15264 environment variables in true.executable are handled:
Matt Mackall
tests: avoid writing files to HGTMP
r19264 $ echo 'echo "custom merge tool"' > .hg/merge.sh
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Greg Ward
merge: expand environment variables and ~/ in tool.executable...
r15264 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: adapt for Windows
r16967 $ hg --config merge-tools.true.executable='sh' \
Matt Mackall
tests: avoid writing files to HGTMP
r19264 > --config merge-tools.true.args=.hg/merge.sh \
Adrian Buehlmann
test-merge-tools: adapt for Windows
r16967 > merge -r 2
Greg Ward
merge: expand environment variables and ~/ in tool.executable...
r15264 merging f
custom merge tool
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ aftermerge
Greg Ward
merge: expand environment variables and ~/ in tool.executable...
r15264 # cat f
revision 1
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Greg Ward
merge: expand environment variables and ~/ in tool.executable...
r15264
Mads Kiilerich
tests: add some missing #if's / hghave requirements...
r16972 #endif
Matt Mackall
tests: unify test-merge-tools
r12460 Tool selection and merge-patterns
merge-patterns specifies new tool false:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --config merge-patterns.f=false
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
merge-patterns specifies executable not found in PATH and gets warning:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
timeless@mozdev.org
spelling: nonexistent
r17492 $ hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=nonexistentmergetool
Matt Mackall
tests: unify test-merge-tools
r12460 couldn't find merge tool true specified for f
merging f
Siddharth Agarwal
filemerge: break overall filemerge into separate premerge and merge steps...
r26611 couldn't find merge tool true specified for f
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
merge-patterns specifies executable with bogus path and gets warning:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
timeless@mozdev.org
spelling: nonexistent
r17492 $ hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/nonexistent/mergetool
Matt Mackall
tests: unify test-merge-tools
r12460 couldn't find merge tool true specified for f
merging f
Siddharth Agarwal
filemerge: break overall filemerge into separate premerge and merge steps...
r26611 couldn't find merge tool true specified for f
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
ui.merge overrules priority
ui.merge specifies false:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --config ui.merge=false
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
ui.merge specifies internal:fail:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --config ui.merge=internal:fail
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
Mads Kiilerich
filemerge: introduce :x as short version of internal:x merge tool name...
r22706 ui.merge specifies :local (without internal prefix):
Matt Mackall
tests: unify test-merge-tools
r12460
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Mads Kiilerich
filemerge: introduce :x as short version of internal:x merge tool name...
r22706 $ hg merge -r 2 --config ui.merge=:local
Matt Mackall
tests: unify test-merge-tools
r12460 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Matt Mackall
tests: unify test-merge-tools
r12460
ui.merge specifies internal:other:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --config ui.merge=internal:other
Matt Mackall
tests: unify test-merge-tools
r12460 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 2
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Matt Mackall
tests: unify test-merge-tools
r12460
ui.merge specifies internal:prompt:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --config ui.merge=internal:prompt
Martin von Zweigbergk
filemerge: remove leading space from " no tool found..."...
r26967 no tool found to merge f
Siddharth Agarwal
filemerge: default regular prompts to 'leave unresolved' (BC)...
r27164 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]
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
Siddharth Agarwal
filemerge: default regular prompts to 'leave unresolved' (BC)...
r27164 U f
Matt Mackall
tests: unify test-merge-tools
r12460
Siddharth Agarwal
filemerge: add a 'leave unresolved' option to regular prompts...
r27162 ui.merge specifies :prompt, with 'leave unresolved' chosen
$ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
$ hg merge -r 2 --config ui.merge=:prompt --config ui.interactive=True << EOF
> u
> EOF
no tool found to merge f
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
space
# hg stat
M f
# hg resolve --list
U f
Siddharth Agarwal
filemerge: treat EOF at prompt as fail, not abort...
r26898 prompt with EOF
$ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
$ hg merge -r 2 --config ui.merge=internal:prompt --config ui.interactive=true
Martin von Zweigbergk
filemerge: remove leading space from " no tool found..."...
r26967 no tool found to merge f
Siddharth Agarwal
filemerge: add a 'leave unresolved' option to regular prompts...
r27162 keep (l)ocal, take (o)ther, or leave (u)nresolved?
Siddharth Agarwal
filemerge: treat EOF at prompt as fail, not abort...
r26898 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
space
# hg stat
M f
# hg resolve --list
U f
$ hg resolve --all --config ui.merge=internal:prompt --config ui.interactive=true
Martin von Zweigbergk
filemerge: remove leading space from " no tool found..."...
r26967 no tool found to merge f
Siddharth Agarwal
filemerge: add a 'leave unresolved' option to regular prompts...
r27162 keep (l)ocal, take (o)ther, or leave (u)nresolved?
Siddharth Agarwal
filemerge: treat EOF at prompt as fail, not abort...
r26898 [1]
$ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
# hg resolve --list
U f
Siddharth Agarwal
resolve: don't abort when file is missing...
r26899 $ rm f
$ hg resolve --all --config ui.merge=internal:prompt --config ui.interactive=true
Martin von Zweigbergk
filemerge: remove leading space from " no tool found..."...
r26967 no tool found to merge f
Siddharth Agarwal
filemerge: add a 'leave unresolved' option to regular prompts...
r27162 keep (l)ocal, take (o)ther, or leave (u)nresolved?
Siddharth Agarwal
resolve: don't abort when file is missing...
r26899 [1]
$ aftermerge
# cat f
revision 1
space
# hg stat
M f
# hg resolve --list
U f
$ hg resolve --all --config ui.merge=internal:prompt
Martin von Zweigbergk
filemerge: remove leading space from " no tool found..."...
r26967 no tool found to merge f
Siddharth Agarwal
filemerge: default regular prompts to 'leave unresolved' (BC)...
r27164 keep (l)ocal, take (o)ther, or leave (u)nresolved? u
[1]
Siddharth Agarwal
resolve: don't abort when file is missing...
r26899 $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
# hg resolve --list
Siddharth Agarwal
filemerge: default regular prompts to 'leave unresolved' (BC)...
r27164 U f
Siddharth Agarwal
resolve: don't abort when file is missing...
r26899
Matt Mackall
tests: unify test-merge-tools
r12460 ui.merge specifies internal:dump:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --config ui.merge=internal:dump
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.base
? f.local
? f.orig
? f.other
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
f.base:
$ cat f.base
revision 0
space
f.local:
$ cat f.local
revision 1
space
f.other:
$ cat f.other
revision 2
space
$ rm f.base f.local f.other
ui.merge specifies internal:other but is overruled by pattern for false:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --config ui.merge=internal:other --config merge-patterns.f=false
Matt Mackall
tests: unify test-merge-tools
r12460 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Matt Mackall
tests: unify test-merge-tools
r12460
Premerge
Steve Borho
merge: implement --tool arguments using new ui.forcemerge configurable...
r12788 ui.merge specifies internal:other but is overruled by --tool=false
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Steve Borho
merge: implement --tool arguments using new ui.forcemerge configurable...
r12788 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --config ui.merge=internal:other --tool=false
Steve Borho
merge: implement --tool arguments using new ui.forcemerge configurable...
r12788 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Steve Borho
merge: implement --tool arguments using new ui.forcemerge configurable...
r12788 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Steve Borho
merge: implement --tool arguments using new ui.forcemerge configurable...
r12788 HGMERGE specifies internal:other but is overruled by --tool=false
$ HGMERGE=internal:other ; export HGMERGE
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Steve Borho
merge: implement --tool arguments using new ui.forcemerge configurable...
r12788 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 2 --tool=false
Steve Borho
merge: implement --tool arguments using new ui.forcemerge configurable...
r12788 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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Steve Borho
merge: implement --tool arguments using new ui.forcemerge configurable...
r12788 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Steve Borho
merge: implement --tool arguments using new ui.forcemerge configurable...
r12788 $ unset HGMERGE # make sure HGMERGE doesn't interfere with remaining tests
Mads Kiilerich
update: introduce --tool for controlling the merge tool...
r21552 update is a merge ...
FUJIWARA Katsunori
context: write dirstate out explicitly after marking files as clean...
r25753 (this also tests that files reverted with '--rev REV' are treated as
"modified", even if none of mode, size and timestamp of them isn't
changed on the filesystem (see also issue4583))
$ cat >> $HGRCPATH <<EOF
> [fakedirstatewritetime]
> # emulate invoking dirstate.write() via repo.status()
> # at 2000-01-01 00:00
> fakenow = 200001010000
> EOF
Mads Kiilerich
update: introduce --tool for controlling the merge tool...
r21552 $ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Martin von Zweigbergk
test-merge-tools: fix flaky test by avoiding debugsetparents...
r24121 $ hg update -q 0
FUJIWARA Katsunori
revert: apply normallookup on reverted file if size isn't changed (issue4583)...
r24843 $ f -s f
f: size=17
$ touch -t 200001010000 f
FUJIWARA Katsunori
context: write dirstate out explicitly after marking files as clean...
r25753 $ hg debugrebuildstate
$ cat >> $HGRCPATH <<EOF
> [extensions]
> fakedirstatewritetime = $TESTDIR/fakedirstatewritetime.py
> EOF
Martin von Zweigbergk
test-merge-tools: fix flaky test by avoiding debugsetparents...
r24121 $ hg revert -q -r 1 .
FUJIWARA Katsunori
context: write dirstate out explicitly after marking files as clean...
r25753 $ cat >> $HGRCPATH <<EOF
> [extensions]
> fakedirstatewritetime = !
> EOF
FUJIWARA Katsunori
revert: apply normallookup on reverted file if size isn't changed (issue4583)...
r24843 $ f -s f
f: size=17
$ touch -t 200001010000 f
$ hg status f
M f
Mads Kiilerich
update: introduce --tool for controlling the merge tool...
r21552 $ hg update -r 2
merging f
revision 1
space
revision 0
space
revision 2
space
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
$ aftermerge
# cat f
revision 1
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Mads Kiilerich
update: introduce --tool for controlling the merge tool...
r21552
update should also have --tool
$ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Martin von Zweigbergk
test-merge-tools: fix flaky test by avoiding debugsetparents...
r24121 $ hg update -q 0
FUJIWARA Katsunori
revert: apply normallookup on reverted file if size isn't changed (issue4583)...
r24843 $ f -s f
f: size=17
$ touch -t 200001010000 f
FUJIWARA Katsunori
context: write dirstate out explicitly after marking files as clean...
r25753 $ hg debugrebuildstate
$ cat >> $HGRCPATH <<EOF
> [extensions]
> fakedirstatewritetime = $TESTDIR/fakedirstatewritetime.py
> EOF
Martin von Zweigbergk
test-merge-tools: fix flaky test by avoiding debugsetparents...
r24121 $ hg revert -q -r 1 .
FUJIWARA Katsunori
context: write dirstate out explicitly after marking files as clean...
r25753 $ cat >> $HGRCPATH <<EOF
> [extensions]
> fakedirstatewritetime = !
> EOF
FUJIWARA Katsunori
revert: apply normallookup on reverted file if size isn't changed (issue4583)...
r24843 $ f -s f
f: size=17
$ touch -t 200001010000 f
$ hg status f
M f
Mads Kiilerich
update: introduce --tool for controlling the merge tool...
r21552 $ hg update -r 2 --tool 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
[1]
$ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Mads Kiilerich
update: introduce --tool for controlling the merge tool...
r21552
Matt Mackall
tests: unify test-merge-tools
r12460 Default is silent simplemerge:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 3
Matt Mackall
tests: unify test-merge-tools
r12460 merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
revision 3
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Matt Mackall
tests: unify test-merge-tools
r12460
.premerge=True is same:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 3 --config merge-tools.true.premerge=True
Matt Mackall
tests: unify test-merge-tools
r12460 merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
revision 3
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Matt Mackall
tests: unify test-merge-tools
r12460
.premerge=False executes merge-tool:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -r 3 --config merge-tools.true.premerge=False
Mads Kiilerich
util: flush stdout before calling external processes...
r13439 merging f
Matt Mackall
tests: unify test-merge-tools
r12460 revision 1
space
revision 0
space
revision 0
space
revision 3
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Matt Mackall
tests: unify test-merge-tools
r12460
Pierre-Yves David
mergetools: add a test for premerge --keep...
r22030 premerge=keep keeps conflict markers in:
$ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
$ hg merge -r 4 --config merge-tools.true.premerge=keep
merging f
<<<<<<< local: ef83787e2614 - test: revision 1
revision 1
space
=======
revision 4
>>>>>>> other: 81448d39c9a0 - test: revision 4
revision 0
space
revision 4
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ aftermerge
# cat f
<<<<<<< local: ef83787e2614 - test: revision 1
revision 1
space
=======
revision 4
>>>>>>> other: 81448d39c9a0 - test: revision 4
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Pierre-Yves David
mergetools: add a test for premerge --keep...
r22030
Pierre-Yves David
merge-tools: add a `premerge=keep-merge3` config option...
r22032 premerge=keep-merge3 keeps conflict markers with base content:
$ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
$ hg merge -r 4 --config merge-tools.true.premerge=keep-merge3
merging f
<<<<<<< local: ef83787e2614 - test: revision 1
revision 1
space
||||||| base
revision 0
space
=======
revision 4
>>>>>>> other: 81448d39c9a0 - test: revision 4
revision 0
space
revision 4
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ aftermerge
# cat f
<<<<<<< local: ef83787e2614 - test: revision 1
revision 1
space
||||||| base
revision 0
space
=======
revision 4
>>>>>>> other: 81448d39c9a0 - test: revision 4
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Pierre-Yves David
merge-tools: add a `premerge=keep-merge3` config option...
r22032
Pierre-Yves David
mergetools: add a test for premerge --keep...
r22030
Matt Mackall
tests: unify test-merge-tools
r12460 Tool execution
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243 set tools.args explicit to include $base $local $other $output:
Matt Mackall
tests: unify test-merge-tools
r12460 $ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
$ hg merge -r 2 --config merge-tools.true.executable=head --config merge-tools.true.args='$base $local $other $output' \
> | sed 's,==> .* <==,==> ... <==,g'
Mads Kiilerich
util: flush stdout before calling external processes...
r13439 merging f
Matt Mackall
tests: unify test-merge-tools
r12460 ==> ... <==
revision 0
space
==> ... <==
revision 1
space
==> ... <==
revision 2
space
==> ... <==
revision 1
space
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ aftermerge
# cat f
revision 1
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Merge with "echo mergeresult > $local":
Matt Mackall
tests: unify test-merge-tools
r12460 $ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
$ hg merge -r 2 --config merge-tools.true.executable=echo --config merge-tools.true.args='mergeresult > $local'
merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ aftermerge
# cat f
mergeresult
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
- and $local is the file f:
Matt Mackall
tests: unify test-merge-tools
r12460 $ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
$ hg merge -r 2 --config merge-tools.true.executable=echo --config merge-tools.true.args='mergeresult > f'
merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ aftermerge
# cat f
mergeresult
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Merge with "echo mergeresult > $output" - the variable is a bit magic:
Matt Mackall
tests: unify test-merge-tools
r12460 $ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
$ hg merge -r 2 --config merge-tools.true.executable=echo --config merge-tools.true.args='mergeresult > $output'
merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ aftermerge
# cat f
mergeresult
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Matt Mackall
tests: unify test-merge-tools
r12460
Merge using tool with a path that must be quoted:
$ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
$ cat <<EOF > 'my merge tool'
> cat "\$1" "\$2" "\$3" > "\$4"
> EOF
Adrian Buehlmann
test-merge-tools: adapt for Windows
r16967 $ hg --config merge-tools.true.executable='sh' \
> --config merge-tools.true.args='"./my merge tool" $base $local $other $output' \
> merge -r 2
Matt Mackall
tests: unify test-merge-tools
r12460 merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ rm -f 'my merge tool'
$ aftermerge
# cat f
revision 0
space
revision 1
space
revision 2
space
# hg stat
M f
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
R f
Matt Mackall
tests: unify test-merge-tools
r12460
Keegan Carruthers-Smith
filemerge: use util.shellquote when calling merge (issue3581)
r17885 Issue3581: Merging a filename that needs to be quoted
Matt Mackall
tests: fix test for issue3581 for vfat on Linux
r17902 (This test doesn't work on Windows filesystems even on Linux, so check
for Unix-like permission)
Keegan Carruthers-Smith
filemerge: use util.shellquote when calling merge (issue3581)
r17885
Matt Mackall
tests: fix test for issue3581 for vfat on Linux
r17902 #if unix-permissions
Keegan Carruthers-Smith
filemerge: use util.shellquote when calling merge (issue3581)
r17885 $ beforemerge
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
$ echo "revision 5" > '"; exit 1; echo "'
$ hg commit -Am "revision 5"
adding "; exit 1; echo "
warning: filename contains '"', which is reserved on Windows: '"; exit 1; echo "'
Pierre-Yves David
test-merge-tools: introduce a "revision 4" that merges with conflict...
r22029 $ hg update -C 1 > /dev/null
$ echo "revision 6" > '"; exit 1; echo "'
$ hg commit -Am "revision 6"
adding "; exit 1; echo "
warning: filename contains '"', which is reserved on Windows: '"; exit 1; echo "'
Keegan Carruthers-Smith
filemerge: use util.shellquote when calling merge (issue3581)
r17885 created new head
Pierre-Yves David
test-merge-tools: introduce a "revision 4" that merges with conflict...
r22029 $ hg merge --config merge-tools.true.executable="true" -r 5
Keegan Carruthers-Smith
filemerge: use util.shellquote when calling merge (issue3581)
r17885 merging "; exit 1; echo "
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg update -C 1 > /dev/null
Keegan Carruthers-Smith
filemerge: only run test for issue3581 on non-windows environments
r17901 #endif
Keegan Carruthers-Smith
filemerge: use util.shellquote when calling merge (issue3581)
r17885
Matt Mackall
tests: unify test-merge-tools
r12460 Merge post-processing
cat is a bad merge-tool and doesn't change:
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ beforemerge
Matt Mackall
tests: unify test-merge-tools
r12460 [merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 $ hg merge -y -r 2 --config merge-tools.true.checkchanged=1
Mads Kiilerich
util: flush stdout before calling external processes...
r13439 merging f
Matt Mackall
tests: unify test-merge-tools
r12460 revision 1
space
revision 0
space
revision 2
space
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
Adrian Buehlmann
test-merge-tools: inline pointless domerge function...
r16961 [1]
$ aftermerge
Matt Mackall
tests: unify test-merge-tools
r12460 # cat f
revision 1
space
# hg stat
M f
? f.orig
Siddharth Agarwal
test-merge-tools.t: add 'hg resolve --list' output to tests...
r26897 # hg resolve --list
U f
Mads Kiilerich
merge: make internal merge fail cleanly on symlinks...
r18256
#if symlink
internal merge cannot handle symlinks and shouldn't try:
$ hg update -q -C 1
$ rm f
$ ln -s symlink f
$ hg commit -qm 'f is symlink'
$ hg merge -r 2 --tool internal:merge
merging f
Mads Kiilerich
filemerge: switch the default name for internal tools from internal:x to :x
r22707 warning: internal :merge cannot merge symlinks for f
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging f! (edit, then use 'hg resolve --mark')
Mads Kiilerich
merge: make internal merge fail cleanly on symlinks...
r18256 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]
#endif