##// END OF EJS Templates
transplant: only pull the transplanted revision (issue4692)...
transplant: only pull the transplanted revision (issue4692) For some reason, transplant was pulling all remote revisions when transplanting from a remote repository (unless --branch was specified).

File last commit:

r25125:bd625cd4 default
r25679:540cd0dd 3.4.2 stable
Show More
test-merge-types.t
379 lines | 9.7 KiB | text/troff | Tads3Lexer
/ tests / test-merge-types.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require symlink execbit
Mads Kiilerich
tests: use 'hghave symlink' for tests using symlinks
r15441
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout() {
> if [ -h $1 ]; then
> echo $1 is a symlink:
> $TESTDIR/readlink.py $1
> elif [ -x $1 ]; then
> echo $1 is an executable file with content:
> cat $1
> else
> echo $1 is a plain file with content:
> cat $1
> fi
> }
$ hg init test1
$ cd test1
Adrian Buehlmann
combine tests
r12279
$ echo a > a
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ hg ci -Aqmadd
Adrian Buehlmann
combine tests
r12279 $ chmod +x a
$ hg ci -mexecutable
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ hg up -q 0
Adrian Buehlmann
combine tests
r12279 $ rm a
$ ln -s symlink a
$ hg ci -msymlink
created new head
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 Symlink is local parent, executable is other:
Adrian Buehlmann
combine tests
r12279 $ hg merge --debug
searching for copies back to rev 1
resolving manifests
Siddharth Agarwal
manifestmerge: pass in branchmerge and force separately...
r18605 branchmerge: True, force: False, partial: False
Martin Geisler
merge: make debug output easier to read...
r15625 ancestor: c334dc3be0da, local: 521a1e40188f+, remote: 3574f3e69b1c
Mads Kiilerich
merge: change debug logging - test output changes but no real changes...
r21391 preserving a for resolve of a
Mads Kiilerich
merge: merge file flags together with file content...
r18338 a: versions differ -> m
Adrian Buehlmann
combine tests
r12279 updating: a 1/1 files (100.00%)
Mads Kiilerich
merge: merge file flags together with file content...
r18338 picked tool 'internal:merge' for a (binary False symlink True)
merging a
my a@521a1e40188f+ other a@3574f3e69b1c ancestor a@c334dc3be0da
Mads Kiilerich
filemerge: switch the default name for internal tools from internal:x to :x
r22707 warning: internal :merge cannot merge symlinks for a
Mads Kiilerich
merge: merge file flags together with file content...
r18338 merging a incomplete! (edit conflicts, 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
[1]
Adrian Buehlmann
combine tests
r12279
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout a
Mads Kiilerich
merge: merge file flags together with file content...
r18338 a is a symlink:
a -> symlink
$ hg resolve a --tool internal:other
Pierre-Yves David
resolve: add parenthesis around "no more unresolved files" message...
r21947 (no more unresolved files)
Mads Kiilerich
merge: merge file flags together with file content...
r18338 $ tellmeabout a
a is an executable file with content:
a
$ hg st
M a
? a.orig
Adrian Buehlmann
combine tests
r12279
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 Symlink is other parent, executable is local:
Adrian Buehlmann
combine tests
r12279
$ hg update -C 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge --debug
searching for copies back to rev 1
resolving manifests
Siddharth Agarwal
manifestmerge: pass in branchmerge and force separately...
r18605 branchmerge: True, force: False, partial: False
Martin Geisler
merge: make debug output easier to read...
r15625 ancestor: c334dc3be0da, local: 3574f3e69b1c+, remote: 521a1e40188f
Mads Kiilerich
merge: change debug logging - test output changes but no real changes...
r21391 preserving a for resolve of a
Mads Kiilerich
merge: merge file flags together with file content...
r18338 a: versions differ -> m
Adrian Buehlmann
combine tests
r12279 updating: a 1/1 files (100.00%)
Mads Kiilerich
merge: merge file flags together with file content...
r18338 picked tool 'internal:merge' for a (binary False symlink True)
merging a
my a@3574f3e69b1c+ other a@521a1e40188f ancestor a@c334dc3be0da
Mads Kiilerich
filemerge: switch the default name for internal tools from internal:x to :x
r22707 warning: internal :merge cannot merge symlinks for a
Mads Kiilerich
merge: merge file flags together with file content...
r18338 merging a incomplete! (edit conflicts, 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
[1]
Adrian Buehlmann
combine tests
r12279
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout a
Mads Kiilerich
merge: merge file flags together with file content...
r18338 a is an executable file with content:
a
Adrian Buehlmann
combine tests
r12279
Matt Mackall
merge: handle linear update to symlink correctly (issue3316)...
r16255 Update to link without local change should get us a symlink (issue3316):
Mads Kiilerich
tests: fix test markup in test-merge-types.t...
r17110 $ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg st
Mads Kiilerich
merge: merge file flags together with file content...
r18338 ? a.orig
Matt Mackall
merge: handle linear update to symlink correctly (issue3316)...
r16255
Update to link with local change should cause a merge prompt (issue3200):
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ hg up -Cq 0
Matt Mackall
merge: handle linear update to symlink correctly (issue3316)...
r16255 $ echo data > a
$ HGMERGE= hg up -y --debug
searching for copies back to rev 2
resolving manifests
Siddharth Agarwal
manifestmerge: pass in branchmerge and force separately...
r18605 branchmerge: False, force: False, partial: False
Matt Mackall
merge: handle linear update to symlink correctly (issue3316)...
r16255 ancestor: c334dc3be0da, local: c334dc3be0da+, remote: 521a1e40188f
Mads Kiilerich
merge: change debug logging - test output changes but no real changes...
r21391 preserving a for resolve of a
Matt Mackall
merge: handle linear update to symlink correctly (issue3316)...
r16255 a: versions differ -> m
updating: a 1/1 files (100.00%)
Thomas Arendsen Hein
test-merge-types: allow different output with existing hgmerge (issue3346)...
r16355 (couldn't find merge tool hgmerge|tool hgmerge can't handle symlinks) (re)
Mads Kiilerich
filemerge: switch the default name for internal tools from internal:x to :x
r22707 picked tool ':prompt' for a (binary False symlink True)
Matt Mackall
merge: handle linear update to symlink correctly (issue3316)...
r16255 no tool found to merge a
keep (l)ocal or take (o)ther? l
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
$ hg diff --git
diff --git a/a b/a
old mode 120000
new mode 100644
--- a/a
+++ b/a
@@ -1,1 +1,1 @@
-symlink
\ No newline at end of file
+data
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 Test only 'l' change - happens rarely, except when recovering from situations
where that was what happened.
$ hg init test2
$ cd test2
$ printf base > f
$ hg ci -Aqm0
$ echo file > f
$ echo content >> f
$ hg ci -qm1
$ hg up -qr0
$ rm f
$ ln -s base f
$ hg ci -qm2
$ hg merge
Mads Kiilerich
merge: merge file flags together with file content...
r18338 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
Mads Kiilerich
merge: merge file flags together with file content...
r18338 merging f incomplete! (edit conflicts, 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
[1]
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout f
f is a symlink:
Mads Kiilerich
merge: merge file flags together with file content...
r18338 f -> base
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337
$ hg up -Cqr1
$ hg merge
Mads Kiilerich
merge: merge file flags together with file content...
r18338 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
Mads Kiilerich
merge: merge file flags together with file content...
r18338 merging f incomplete! (edit conflicts, 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
[1]
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout f
f is a plain file with content:
file
content
$ cd ..
Test removed 'x' flag merged with change to symlink
$ hg init test3
$ cd test3
$ echo f > f
$ chmod +x f
$ hg ci -Aqm0
$ chmod -x f
$ hg ci -qm1
$ hg up -qr0
$ rm f
$ ln -s dangling f
$ hg ci -qm2
$ hg merge
Mads Kiilerich
merge: merge file flags together with file content...
r18338 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
Mads Kiilerich
merge: merge file flags together with file content...
r18338 merging f incomplete! (edit conflicts, 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
[1]
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout f
f is a symlink:
f -> dangling
$ hg up -Cqr1
$ hg merge
Mads Kiilerich
merge: merge file flags together with file content...
r18338 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
Mads Kiilerich
merge: merge file flags together with file content...
r18338 merging f incomplete! (edit conflicts, 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
[1]
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout f
Mads Kiilerich
merge: merge file flags together with file content...
r18338 f is a plain file with content:
f
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337
Mads Kiilerich
merge: fix UnboundLocalError (issue3791)...
r18505 Test removed 'x' flag merged with content change - both ways
$ hg up -Cqr0
$ echo change > f
$ hg ci -qm3
$ hg merge -r1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ tellmeabout f
f is a plain file with content:
change
$ hg up -qCr1
$ hg merge -r3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ tellmeabout f
f is a plain file with content:
change
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ cd ..
Test merge with no common ancestor:
a: just different
b: x vs -, different (cannot calculate x, cannot ask merge tool)
c: x vs -, same (cannot calculate x, merge tool is no good)
d: x vs l, different
e: x vs l, same
f: - vs l, different
g: - vs l, same
h: l vs l, different
(where same means the filelog entry is shared and there thus is an ancestor!)
$ hg init test4
$ cd test4
$ echo 0 > 0
$ hg ci -Aqm0
$ echo 1 > a
$ echo 1 > b
$ chmod +x b
$ echo x > c
$ chmod +x c
$ echo 1 > d
$ chmod +x d
$ printf x > e
$ chmod +x e
$ echo 1 > f
$ printf x > g
$ ln -s 1 h
$ hg ci -qAm1
$ hg up -qr0
$ echo 2 > a
$ echo 2 > b
$ echo x > c
$ ln -s 2 d
$ ln -s x e
$ ln -s 2 f
$ ln -s x g
$ ln -s 2 h
$ hg ci -Aqm2
$ hg merge
merging a
warning: conflicts during merge.
merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
Mads Kiilerich
merge: merge file flags together with file content...
r18338 warning: cannot merge flags for b
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 merging b
warning: conflicts during merge.
merging b incomplete! (edit conflicts, then use 'hg resolve --mark')
Mads Kiilerich
merge: use ancestor filename from planning phase instead of filectx ancestor...
r20897 warning: cannot merge flags for c
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 merging d
Mads Kiilerich
filemerge: switch the default name for internal tools from internal:x to :x
r22707 warning: internal :merge cannot merge symlinks for d
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 merging d incomplete! (edit conflicts, then use 'hg resolve --mark')
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
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
merging h
Mads Kiilerich
filemerge: switch the default name for internal tools from internal:x to :x
r22707 warning: internal :merge cannot merge symlinks for h
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 merging h incomplete! (edit conflicts, then use 'hg resolve --mark')
Mads Kiilerich
merge: merge file flags together with file content...
r18338 3 files updated, 0 files merged, 0 files removed, 5 files unresolved
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
$ hg resolve -l
U a
U b
U d
U f
U h
$ tellmeabout a
a is a plain file with content:
Pierre-Yves David
merge: drop the quotes around commit description...
r21693 <<<<<<< local: 0139c5610547 - test: 2
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 2
=======
1
Pierre-Yves David
merge: drop the quotes around commit description...
r21693 >>>>>>> other: 97e29675e796 - test: 1
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout b
Mads Kiilerich
merge: merge file flags together with file content...
r18338 b is a plain file with content:
Pierre-Yves David
merge: drop the quotes around commit description...
r21693 <<<<<<< local: 0139c5610547 - test: 2
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 2
=======
1
Pierre-Yves David
merge: drop the quotes around commit description...
r21693 >>>>>>> other: 97e29675e796 - test: 1
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout c
Mads Kiilerich
merge: merge file flags together with file content...
r18338 c is a plain file with content:
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 x
$ tellmeabout d
Mads Kiilerich
merge: merge file flags together with file content...
r18338 d is a symlink:
d -> 2
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout e
Mads Kiilerich
merge: merge file flags together with file content...
r18338 e is a symlink:
e -> x
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout f
f is a symlink:
f -> 2
$ tellmeabout g
g is a symlink:
g -> x
$ tellmeabout h
h is a symlink:
h -> 2
$ hg up -Cqr1
$ hg merge
merging a
warning: conflicts during merge.
merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
Mads Kiilerich
merge: merge file flags together with file content...
r18338 warning: cannot merge flags for b
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 merging b
warning: conflicts during merge.
merging b incomplete! (edit conflicts, then use 'hg resolve --mark')
Mads Kiilerich
merge: use ancestor filename from planning phase instead of filectx ancestor...
r20897 warning: cannot merge flags for c
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 merging d
Mads Kiilerich
filemerge: switch the default name for internal tools from internal:x to :x
r22707 warning: internal :merge cannot merge symlinks for d
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 merging d incomplete! (edit conflicts, then use 'hg resolve --mark')
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
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
merging h
Mads Kiilerich
filemerge: switch the default name for internal tools from internal:x to :x
r22707 warning: internal :merge cannot merge symlinks for h
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 merging h incomplete! (edit conflicts, then use 'hg resolve --mark')
Mads Kiilerich
merge: merge file flags together with file content...
r18338 3 files updated, 0 files merged, 0 files removed, 5 files unresolved
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
$ tellmeabout a
a is a plain file with content:
Pierre-Yves David
merge: drop the quotes around commit description...
r21693 <<<<<<< local: 97e29675e796 - test: 1
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 1
=======
2
Pierre-Yves David
merge: drop the quotes around commit description...
r21693 >>>>>>> other: 0139c5610547 - test: 2
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout b
b is an executable file with content:
Pierre-Yves David
merge: drop the quotes around commit description...
r21693 <<<<<<< local: 97e29675e796 - test: 1
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 1
=======
2
Pierre-Yves David
merge: drop the quotes around commit description...
r21693 >>>>>>> other: 0139c5610547 - test: 2
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 $ tellmeabout c
Mads Kiilerich
merge: use ancestor filename from planning phase instead of filectx ancestor...
r20897 c is an executable file with content:
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 x
$ tellmeabout d
Mads Kiilerich
merge: merge file flags together with file content...
r18338 d is an executable file with content:
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 1
$ tellmeabout e
Mads Kiilerich
merge: merge file flags together with file content...
r18338 e is an executable file with content:
Mads Kiilerich
tests: better test coverage of merges of flags...
r18337 x (no-eol)
$ tellmeabout f
f is a plain file with content:
1
$ tellmeabout g
g is a plain file with content:
x (no-eol)
$ tellmeabout h
h is a symlink:
h -> 1
$ cd ..