##// END OF EJS Templates
mq: use dirstateguard instead of dirstate.invalidate (qpush)...
mq: use dirstateguard instead of dirstate.invalidate (qpush) Before this patch, "mq.queue.apply()" uses "dirstate.invalidate()" as a kind of "restore .hg/dirstate to the original status" during afailure. But it just discards changes in memory, and doesn't actually restore ".hg/dirstate". Then, it can't work as expected, if "dirstate.write()" is executed while processing. This patch uses "dirstateguard" instead of "dirstate.invalidate()" to restore ".hg/dirstate" at failure even if "dirstate.write()" is executed before failure. This is a part of preparations to fix the issue that the recent (in memory) dirstate isn't visible to external processes (e.g. "precommit" hook).

File last commit:

r23781:49caef45 default
r24996:58308dde default
Show More
test-transplant.t
792 lines | 18.1 KiB | text/troff | Tads3Lexer
/ tests / test-transplant.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require killdaemons
Mads Kiilerich
tests: use 'hghave serve' to guard tests that requires serve daemon management
r15446
Nicolas Dumazet
tests: unify test-transplant
r11800 $ cat <<EOF >> $HGRCPATH
> [extensions]
> transplant=
> EOF
$ hg init t
$ cd t
$ echo r1 > r1
$ hg ci -Amr1 -d'0 0'
adding r1
$ echo r2 > r2
$ hg ci -Amr2 -d'1 0'
adding r2
$ hg up 0
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo b1 > b1
$ hg ci -Amb1 -d '0 0'
adding b1
created new head
$ echo b2 > b2
$ hg ci -Amb2 -d '1 0'
adding b2
$ echo b3 > b3
$ hg ci -Amb3 -d '2 0'
adding b3
$ hg log --template '{rev} {parents} {desc}\n'
4 b3
3 b2
2 0:17ab29e464c6 b1
1 r2
0 r1
$ hg clone . ../rebase
updating to branch default
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../rebase
$ hg up -C 1
1 files updated, 0 files merged, 3 files removed, 0 files unresolved
rebase b onto r1
FUJIWARA Katsunori
transplant: use "getcommiteditor()" instead of explicit editor choice...
r21411 (this also tests that editor is not invoked if '--edit' is not specified)
Nicolas Dumazet
tests: unify test-transplant
r11800
FUJIWARA Katsunori
transplant: use "getcommiteditor()" instead of explicit editor choice...
r21411 $ HGEDITOR=cat hg transplant -a -b tip
Nicolas Dumazet
tests: unify test-transplant
r11800 applying 37a1297eb21b
37a1297eb21b transplanted to e234d668f844
applying 722f4667af76
722f4667af76 transplanted to 539f377d78df
applying a53251cdf717
a53251cdf717 transplanted to ffd6818a3975
$ hg log --template '{rev} {parents} {desc}\n'
7 b3
6 b2
5 1:d11e3596cc1a b1
4 b3
3 b2
2 0:17ab29e464c6 b1
1 r2
0 r1
Patrick Mezard
test-transplant: test transplanted() revset
r12811 test transplanted revset
$ hg log -r 'transplanted()' --template '{rev} {parents} {desc}\n'
5 1:d11e3596cc1a b1
6 b2
7 b3
$ hg help revsets | grep transplanted
Idan Kamara
transplant: fix revset doc
r14211 "transplanted([set])"
Transplanted changesets in set, or all transplanted changesets.
Patrick Mezard
test-transplant: test transplanted() revset
r12811
Mads Kiilerich
spelling: fixes from spell checker
r21024 test transplanted keyword
Patrick Mezard
transplant: add "transplanted" keyword...
r13689
$ hg log --template '{rev} {transplanted}\n'
7 a53251cdf717679d1907b289f991534be05c997a
6 722f4667af767100cb15b6a79324bf8abbfe1ef4
5 37a1297eb21b3ef5c5d2ffac22121a0988ed9f21
4
3
2
1
0
Matt Harbison
revset: add destination() predicate...
r17186 test destination() revset predicate with a transplant of a transplant; new
clone so subsequent rollback isn't affected
FUJIWARA Katsunori
transplant: use "getcommiteditor()" instead of explicit editor choice...
r21411 (this also tests that editor is invoked if '--edit' is specified)
Matt Harbison
revset: add destination() predicate...
r17186 $ hg clone -q . ../destination
$ cd ../destination
$ hg up -Cq 0
$ hg branch -q b4
$ hg ci -qm "b4"
FUJIWARA Katsunori
transplant: use "getcommiteditor()" instead of explicit editor choice...
r21411 $ hg status --rev "7^1" --rev 7
A b3
FUJIWARA Katsunori
transplant: change "editform" to distinguish merge commits from others...
r22252 $ cat > $TESTTMP/checkeditform.sh <<EOF
> env | grep HGEDITFORM
> true
> EOF
FUJIWARA Katsunori
tests: introduce "checkeditform-n-cat.sh" script to invoke "cat" in it safely...
r23092 $ cat > $TESTTMP/checkeditform-n-cat.sh <<EOF
> env | grep HGEDITFORM
> cat \$*
> EOF
$ HGEDITOR="sh $TESTTMP/checkeditform-n-cat.sh" hg transplant --edit 7
Matt Harbison
revset: add destination() predicate...
r17186 applying ffd6818a3975
FUJIWARA Katsunori
transplant: change "editform" to distinguish merge commits from others...
r22252 HGEDITFORM=transplant.normal
FUJIWARA Katsunori
transplant: use "getcommiteditor()" instead of explicit editor choice...
r21411 b3
HG: Enter commit message. Lines beginning with 'HG:' are removed.
HG: Leave message empty to abort commit.
HG: --
HG: user: test
HG: branch 'b4'
HG: added b3
Matt Harbison
revset: add destination() predicate...
r17186 ffd6818a3975 transplanted to 502236fa76bb
$ hg log -r 'destination()'
changeset: 5:e234d668f844
parent: 1:d11e3596cc1a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b1
changeset: 6:539f377d78df
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: b2
changeset: 7:ffd6818a3975
user: test
date: Thu Jan 01 00:00:02 1970 +0000
summary: b3
changeset: 9:502236fa76bb
branch: b4
tag: tip
user: test
date: Thu Jan 01 00:00:02 1970 +0000
summary: b3
$ hg log -r 'destination(a53251cdf717)'
changeset: 7:ffd6818a3975
user: test
date: Thu Jan 01 00:00:02 1970 +0000
summary: b3
changeset: 9:502236fa76bb
branch: b4
tag: tip
user: test
date: Thu Jan 01 00:00:02 1970 +0000
summary: b3
test subset parameter in reverse order
$ hg log -r 'reverse(all()) and destination(a53251cdf717)'
changeset: 9:502236fa76bb
branch: b4
tag: tip
user: test
date: Thu Jan 01 00:00:02 1970 +0000
summary: b3
changeset: 7:ffd6818a3975
user: test
date: Thu Jan 01 00:00:02 1970 +0000
summary: b3
back to the original dir
$ cd ../rebase
Greg Ward
transplant: wrap a transaction around the whole command
r15204 rollback the transplant
$ hg rollback
repository tip rolled back to revision 4 (undo transplant)
working directory now based on revision 1
$ hg tip -q
4:a53251cdf717
$ hg parents -q
1:d11e3596cc1a
$ hg status
? b1
? b2
? b3
Nicolas Dumazet
tests: unify test-transplant
r11800 $ hg clone ../t ../prune
updating to branch default
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../prune
$ hg up -C 1
1 files updated, 0 files merged, 3 files removed, 0 files unresolved
rebase b onto r1, skipping b2
$ hg transplant -a -b tip -p 3
applying 37a1297eb21b
37a1297eb21b transplanted to e234d668f844
applying a53251cdf717
a53251cdf717 transplanted to 7275fda4d04f
$ hg log --template '{rev} {parents} {desc}\n'
6 b3
5 1:d11e3596cc1a b1
4 b3
3 b2
2 0:17ab29e464c6 b1
1 r2
0 r1
Levi Bard
transplant: manually transplant pullable changesets with --log
r16627 test same-parent transplant with --log
Nicolas Dumazet
tests: unify test-transplant
r11800
Levi Bard
transplant: manually transplant pullable changesets with --log
r16627 $ hg clone -r 1 ../t ../sameparent
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../sameparent
$ hg transplant --log -s ../prune 5
searching for changes
applying e234d668f844
e234d668f844 transplanted to e07aea8ecf9c
$ hg log --template '{rev} {parents} {desc}\n'
2 b1
(transplanted from e234d668f844e1b1a765f01db83a32c0c7bfa170)
1 r2
0 r1
Siddharth Agarwal
transplant: don't honor whitespace and format-changing diffopts...
r23452 remote transplant, and also test that transplant doesn't break with
format-breaking diffopts
Nicolas Dumazet
tests: unify test-transplant
r11800
$ hg clone -r 1 ../t ../remote
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../remote
Siddharth Agarwal
transplant: don't honor whitespace and format-changing diffopts...
r23452 $ hg --config diff.noprefix=True transplant --log -s ../t 2 4
Nicolas Dumazet
tests: unify test-transplant
r11800 searching for changes
applying 37a1297eb21b
37a1297eb21b transplanted to c19cf0ccb069
applying a53251cdf717
a53251cdf717 transplanted to f7fe5bf98525
$ hg log --template '{rev} {parents} {desc}\n'
3 b3
(transplanted from a53251cdf717679d1907b289f991534be05c997a)
2 b1
(transplanted from 37a1297eb21b3ef5c5d2ffac22121a0988ed9f21)
1 r2
0 r1
skip previous transplants
$ hg transplant -s ../t -a -b 4
searching for changes
applying 722f4667af76
722f4667af76 transplanted to 47156cd86c0b
$ hg log --template '{rev} {parents} {desc}\n'
4 b2
3 b3
(transplanted from a53251cdf717679d1907b289f991534be05c997a)
2 b1
(transplanted from 37a1297eb21b3ef5c5d2ffac22121a0988ed9f21)
1 r2
0 r1
skip local changes transplanted to the source
$ echo b4 > b4
$ hg ci -Amb4 -d '3 0'
adding b4
$ hg clone ../t ../pullback
updating to branch default
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../pullback
$ hg transplant -s ../remote -a -b tip
searching for changes
applying 4333daefcb15
4333daefcb15 transplanted to 5f42c04e07cc
remote transplant with pull
$ hg -R ../t serve -p $HGPORT -d --pid-file=../t.pid
$ cat ../t.pid >> $DAEMON_PIDS
$ hg clone -r 0 ../t ../rp
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../rp
$ hg transplant -s http://localhost:$HGPORT/ 2 4
searching for changes
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
applying a53251cdf717
a53251cdf717 transplanted to 8d9279348abb
$ hg log --template '{rev} {parents} {desc}\n'
2 b3
1 b1
0 r1
Mads Kiilerich
bundlerepo: don't return the peer without bundlerepo from getremotechanges...
r18138 remote transplant without pull
$ hg pull -q http://localhost:$HGPORT/
$ hg transplant -s http://localhost:$HGPORT/ 2 4
searching for changes
skipping already applied revision 2:8d9279348abb
applying 722f4667af76
722f4667af76 transplanted to 76e321915884
Nicolas Dumazet
tests: unify test-transplant
r11800 transplant --continue
$ hg init ../tc
$ cd ../tc
$ cat <<EOF > foo
> foo
> bar
> baz
> EOF
$ echo toremove > toremove
Patrick Mezard
transplant: do not rollback on patching error (issue3379)...
r16507 $ echo baz > baz
Nicolas Dumazet
tests: unify test-transplant
r11800 $ hg ci -Amfoo
Patrick Mezard
transplant: do not rollback on patching error (issue3379)...
r16507 adding baz
Nicolas Dumazet
tests: unify test-transplant
r11800 adding foo
adding toremove
$ cat <<EOF > foo
> foo2
> bar2
> baz2
> EOF
$ rm toremove
$ echo added > added
$ hg ci -Amfoo2
adding added
removing toremove
$ echo bar > bar
Patrick Mezard
transplant: do not rollback on patching error (issue3379)...
r16507 $ cat > baz <<EOF
> before baz
> baz
> after baz
> EOF
Nicolas Dumazet
tests: unify test-transplant
r11800 $ hg ci -Ambar
adding bar
$ echo bar2 >> bar
$ hg ci -mbar2
$ hg up 0
Patrick Mezard
transplant: do not rollback on patching error (issue3379)...
r16507 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
Nicolas Dumazet
tests: unify test-transplant
r11800 $ echo foobar > foo
$ hg ci -mfoobar
created new head
$ hg transplant 1:3
Patrick Mezard
transplant: do not rollback on patching error (issue3379)...
r16507 applying 46ae92138f3c
Nicolas Dumazet
tests: unify test-transplant
r11800 patching file foo
Hunk #1 FAILED at 0
1 out of 1 hunks FAILED -- saving rejects to file foo.rej
patch failed to apply
Martin Geisler
Merge with stable
r12070 abort: fix up the merge and run hg transplant --continue
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-transplant
r11800
transplant -c shouldn't use an old changeset
$ hg up -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm added
$ hg transplant 1
Patrick Mezard
transplant: do not rollback on patching error (issue3379)...
r16507 applying 46ae92138f3c
Nicolas Dumazet
tests: unify test-transplant
r11800 patching file foo
Hunk #1 FAILED at 0
1 out of 1 hunks FAILED -- saving rejects to file foo.rej
patch failed to apply
Martin Geisler
Merge with stable
r12070 abort: fix up the merge and run hg transplant --continue
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
FUJIWARA Katsunori
transplant: change "editform" to distinguish merge commits from others...
r22252 $ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg transplant --continue -e
HGEDITFORM=transplant.normal
Patrick Mezard
transplant: do not rollback on patching error (issue3379)...
r16507 46ae92138f3c transplanted as 9159dada197d
Nicolas Dumazet
tests: unify test-transplant
r11800 $ hg transplant 1:3
Patrick Mezard
transplant: do not rollback on patching error (issue3379)...
r16507 skipping already applied revision 1:46ae92138f3c
applying 9d6d6b5a8275
9d6d6b5a8275 transplanted to 2d17a10c922f
applying 1dab759070cf
1dab759070cf transplanted to e06a69927eb0
Nicolas Dumazet
tests: unify test-transplant
r11800 $ hg locate
added
bar
Patrick Mezard
transplant: do not rollback on patching error (issue3379)...
r16507 baz
Nicolas Dumazet
tests: unify test-transplant
r11800 foo
Patrick Mezard
transplant: do not rollback on patching error (issue3379)...
r16507
test multiple revisions and --continue
$ hg up -qC 0
$ echo bazbaz > baz
$ hg ci -Am anotherbaz baz
created new head
$ hg transplant 1:3
applying 46ae92138f3c
46ae92138f3c transplanted to 1024233ea0ba
applying 9d6d6b5a8275
patching file baz
Hunk #1 FAILED at 0
1 out of 1 hunks FAILED -- saving rejects to file baz.rej
patch failed to apply
abort: fix up the merge and run hg transplant --continue
[255]
$ echo fixed > baz
$ hg transplant --continue
9d6d6b5a8275 transplanted as d80c49962290
applying 1dab759070cf
1dab759070cf transplanted to aa0ffe6bd5ae
Nicolas Dumazet
tests: unify test-transplant
r11800 $ cd ..
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue1111: Test transplant --merge
Nicolas Dumazet
tests: unify test-transplant
r11800
$ hg init t1111
$ cd t1111
$ echo a > a
$ hg ci -Am adda
adding a
$ echo b >> a
$ hg ci -m appendb
$ echo c >> a
$ hg ci -m appendc
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo d >> a
$ hg ci -m appendd
created new head
Mads Kiilerich
spelling: fixes from spell checker
r21024 transplant
Nicolas Dumazet
tests: unify test-transplant
r11800
FUJIWARA Katsunori
transplant: change "editform" to distinguish merge commits from others...
r22252 $ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg transplant -m 1 -e
Nicolas Dumazet
tests: unify test-transplant
r11800 applying 42dc4432fd35
FUJIWARA Katsunori
transplant: change "editform" to distinguish merge commits from others...
r22252 HGEDITFORM=transplant.merge
Nicolas Dumazet
tests: unify test-transplant
r11800 1:42dc4432fd35 merged at a9f4acbac129
FUJIWARA Katsunori
transplant: change "editform" to distinguish merge commits from others...
r22252 $ hg update -q -C 2
$ cat > a <<EOF
> x
> y
> z
> EOF
$ hg commit -m replace
$ hg update -q -C 4
$ hg transplant -m 5
applying 600a3cdcb41d
patching file a
Hunk #1 FAILED at 0
1 out of 1 hunks FAILED -- saving rejects to file a.rej
patch failed to apply
abort: fix up the merge and run hg transplant --continue
[255]
$ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg transplant --continue -e
HGEDITFORM=transplant.merge
600a3cdcb41d transplanted as a3f88be652e0
Nicolas Dumazet
tests: unify test-transplant
r11800 $ cd ..
test transplant into empty repository
$ hg init empty
$ cd empty
$ hg transplant -s ../t -b tip -a
adding changesets
adding manifests
adding file changes
added 4 changesets with 4 changes to 4 files
FUJIWARA Katsunori
transplant: use peer of source repository as "remote" for "repo.pull()"...
r20020
test "--merge" causing pull from source repository on local host
$ hg --config extensions.mq= -q strip 2
$ hg transplant -s ../t --merge tip
searching for changes
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
applying a53251cdf717
4:a53251cdf717 merged at 4831f4dc831a
FUJIWARA Katsunori
transplant: add test for interactive transplant
r20267 test interactive transplant
$ hg --config extensions.strip= -q strip 0
$ hg -R ../t log -G --template "{rev}:{node|short}"
@ 4:a53251cdf717
|
o 3:722f4667af76
|
o 2:37a1297eb21b
|
| o 1:d11e3596cc1a
|/
o 0:17ab29e464c6
$ hg transplant -q --config ui.interactive=true -s ../t <<EOF
> p
> y
> n
> n
> m
> c
> EOF
0:17ab29e464c6
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 apply changeset? [ynmpcq?]: p
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
FUJIWARA Katsunori
transplant: add test for interactive transplant
r20267 +++ b/r1 Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+r1
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 apply changeset? [ynmpcq?]: y
1:d11e3596cc1a
apply changeset? [ynmpcq?]: n
2:37a1297eb21b
apply changeset? [ynmpcq?]: n
3:722f4667af76
apply changeset? [ynmpcq?]: m
4:a53251cdf717
apply changeset? [ynmpcq?]: c
FUJIWARA Katsunori
transplant: add test for interactive transplant
r20267 $ hg log -G --template "{node|short}"
@ 88be5dde5260
|\
| o 722f4667af76
| |
| o 37a1297eb21b
|/
o 17ab29e464c6
$ hg transplant -q --config ui.interactive=true -s ../t <<EOF
> x
> ?
> y
> q
> EOF
1:d11e3596cc1a
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 apply changeset? [ynmpcq?]: x
unrecognized response
apply changeset? [ynmpcq?]: ?
y: yes, transplant this changeset
FUJIWARA Katsunori
transplant: use "ui.extractchoices()" to show the list of available responses...
r20269 n: no, skip this changeset
FUJIWARA Katsunori
transplant: add test for interactive transplant
r20267 m: merge at this changeset
p: show patch
c: commit selected changesets
FUJIWARA Katsunori
transplant: use "ui.extractchoices()" to show the list of available responses...
r20269 q: quit and cancel transplant
?: ? (show this help)
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 apply changeset? [ynmpcq?]: y
4:a53251cdf717
apply changeset? [ynmpcq?]: q
FUJIWARA Katsunori
transplant: add test for interactive transplant
r20267 $ hg heads --template "{node|short}\n"
88be5dde5260
Nicolas Dumazet
tests: unify test-transplant
r11800 $ cd ..
Mads Kiilerich
tests: add some missing #if's / hghave requirements...
r16972 #if unix-permissions system-sh
Nicolas Dumazet
tests: unify test-transplant
r11800 test filter
$ hg init filter
$ cd filter
$ cat <<'EOF' >test-filter
> #!/bin/sh
> sed 's/r1/r2/' $1 > $1.new
> mv $1.new $1
> EOF
$ chmod +x test-filter
$ hg transplant -s ../t -b tip -a --filter ./test-filter
Brodie Rao
tests: add glob matching for unified tests...
r12376 filtering * (glob)
Nicolas Dumazet
tests: unify test-transplant
r11800 applying 17ab29e464c6
17ab29e464c6 transplanted to e9ffc54ea104
Brodie Rao
tests: add glob matching for unified tests...
r12376 filtering * (glob)
Nicolas Dumazet
tests: unify test-transplant
r11800 applying 37a1297eb21b
37a1297eb21b transplanted to 348b36d0b6a5
Brodie Rao
tests: add glob matching for unified tests...
r12376 filtering * (glob)
Nicolas Dumazet
tests: unify test-transplant
r11800 applying 722f4667af76
722f4667af76 transplanted to 0aa6979afb95
Brodie Rao
tests: add glob matching for unified tests...
r12376 filtering * (glob)
Nicolas Dumazet
tests: unify test-transplant
r11800 applying a53251cdf717
a53251cdf717 transplanted to 14f8512272b5
$ hg log --template '{rev} {parents} {desc}\n'
3 b3
2 b2
1 b1
0 r2
$ cd ..
test filter with failed patch
$ cd filter
$ hg up 0
0 files updated, 0 files merged, 3 files removed, 0 files unresolved
$ echo foo > b1
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -Am foo
Nicolas Dumazet
tests: unify test-transplant
r11800 adding b1
adding test-filter
created new head
$ hg transplant 1 --filter ./test-filter
Brodie Rao
tests: add glob matching for unified tests...
r12376 filtering * (glob)
Nicolas Dumazet
tests: unify test-transplant
r11800 applying 348b36d0b6a5
file b1 already exists
1 out of 1 hunks FAILED -- saving rejects to file b1.rej
patch failed to apply
Martin Geisler
Merge with stable
r12070 abort: fix up the merge and run hg transplant --continue
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-transplant
r11800 $ cd ..
Luke Plant
transplant: added 'HGREVISION' variable to the environment passed to the 'filter' command...
r13579 test environment passed to filter
$ hg init filter-environment
$ cd filter-environment
$ cat <<'EOF' >test-filter-environment
> #!/bin/sh
> echo "Transplant by $HGUSER" >> $1
> echo "Transplant from rev $HGREVISION" >> $1
> EOF
$ chmod +x test-filter-environment
$ hg transplant -s ../t --filter ./test-filter-environment 0
filtering * (glob)
applying 17ab29e464c6
17ab29e464c6 transplanted to 5190e68026a0
$ hg log --template '{rev} {parents} {desc}\n'
0 r1
Transplant by test
Transplant from rev 17ab29e464c6ca53e329470efe2a9918ac617a6f
$ cd ..
Luke Plant
transplant: fix crash if filter script munges log file...
r13789 test transplant with filter handles invalid changelog
$ hg init filter-invalid-log
$ cd filter-invalid-log
$ cat <<'EOF' >test-filter-invalid-log
> #!/bin/sh
> echo "" > $1
> EOF
$ chmod +x test-filter-invalid-log
$ hg transplant -s ../t --filter ./test-filter-invalid-log 0
filtering * (glob)
Brendan Cully
Fix transplant error message to correspond with test
r13790 abort: filter corrupted changeset (no user or date)
Luke Plant
transplant: fix crash if filter script munges log file...
r13789 [255]
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..
Nicolas Dumazet
tests: unify test-transplant
r11800
Mads Kiilerich
tests: add some missing #if's / hghave requirements...
r16972 #endif
Nicolas Dumazet
tests: unify test-transplant
r11800 test with a win32ext like setup (differing EOLs)
$ hg init twin1
$ cd twin1
$ echo a > a
$ echo b > b
$ echo b >> b
$ hg ci -Am t
adding a
adding b
$ echo a > b
$ echo b >> b
$ hg ci -m changeb
$ cd ..
$ hg init twin2
$ cd twin2
$ echo '[patch]' >> .hg/hgrc
$ echo 'eol = crlf' >> .hg/hgrc
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c "file('b', 'wb').write('b\r\nb\r\n')"
Patrick Mezard
test-transplant: fix missing file addition
r14012 $ hg ci -Am addb
adding b
Nicolas Dumazet
tests: unify test-transplant
r11800 $ hg transplant -s ../twin1 tip
Patrick Mezard
test-transplant: fix missing file addition
r14012 searching for changes
warning: repository is unrelated
Nicolas Dumazet
tests: unify test-transplant
r11800 applying 2e849d776c17
Patrick Mezard
test-transplant: fix missing file addition
r14012 2e849d776c17 transplanted to 8e65bebc063e
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat b
a\r (esc)
b\r (esc)
Nicolas Dumazet
tests: unify test-transplant
r11800 $ cd ..
Steven Stallion
transplant: permit merge changesets via --parent...
r16400
test transplant with merge changeset is skipped
$ hg init merge1a
$ cd merge1a
$ echo a > a
$ hg ci -Am a
adding a
$ hg branch b
marked working directory as branch b
(branches are permanent and global, did you want a bookmark?)
$ hg ci -m branchb
$ echo b > b
$ hg ci -Am b
adding b
$ hg update default
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge b
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m mergeb
$ cd ..
$ hg init merge1b
$ cd merge1b
$ hg transplant -s ../merge1a tip
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..
Steven Stallion
transplant: permit merge changesets via --parent...
r16400
test transplant with merge changeset accepts --parent
$ hg init merge2a
$ cd merge2a
$ echo a > a
$ hg ci -Am a
adding a
$ hg branch b
marked working directory as branch b
(branches are permanent and global, did you want a bookmark?)
$ hg ci -m branchb
$ echo b > b
$ hg ci -Am b
adding b
$ hg update default
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge b
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m mergeb
$ cd ..
$ hg init merge2b
$ cd merge2b
$ hg transplant -s ../merge2a --parent 0 tip
applying be9f9b39483f
be9f9b39483f transplanted to 9959e51f94d1
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..
Patrick Mezard
transplant: handle non-empty patches doing nothing (issue2806)...
r17319
test transplanting a patch turning into a no-op
$ hg init binarysource
$ cd binarysource
$ echo a > a
$ hg ci -Am adda a
>>> file('b', 'wb').write('\0b1')
$ hg ci -Am addb b
>>> file('b', 'wb').write('\0b2')
$ hg ci -m changeb b
$ cd ..
$ hg clone -r0 binarysource binarydest
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd binarydest
$ cp ../binarysource/b b
$ hg ci -Am addb2 b
$ hg transplant -s ../binarysource 2
searching for changes
applying 7a7d57e15850
Patrick Mezard
transplant: fix emptied changeset message...
r17320 skipping emptied changeset 7a7d57e15850
Pierre-Yves David
transplant: properly skip empty changeset (issue4423)...
r23781
Test empty result in --continue
$ hg transplant -s ../binarysource 1
searching for changes
applying 645035761929
file b already exists
1 out of 1 hunks FAILED -- saving rejects to file b.rej
patch failed to apply
abort: fix up the merge and run hg transplant --continue
[255]
$ hg status
? b.rej
$ hg transplant --continue
645035761929 skipped due to empty diff
Patrick Mezard
transplant: handle non-empty patches doing nothing (issue2806)...
r17319 $ cd ..
Patrick Mezard
tests: enable more server tests on Windows
r17539 Explicitly kill daemons to let the test exit on Windows
$ "$TESTDIR/killdaemons.py" $DAEMON_PIDS