tests: unify test-transplant
authorNicolas Dumazet <nicdumz.commits@gmail.com>
Thu, 12 Aug 2010 22:14:19 +0900
changeset 11800 88c3ff051270
parent 11799 ddebb6a690b4
child 11801 dedf7c811436
tests: unify test-transplant
tests/test-transplant
tests/test-transplant.out
tests/test-transplant.t
--- a/tests/test-transplant	Thu Aug 12 21:52:53 2010 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-#!/bin/sh
-
-cat <<EOF >> $HGRCPATH
-[extensions]
-transplant=
-EOF
-
-hg init t
-cd t
-echo r1 > r1
-hg ci -Amr1 -d'0 0'
-echo r2 > r2
-hg ci -Amr2 -d'1 0'
-hg up 0
-
-echo b1 > b1
-hg ci -Amb1 -d '0 0'
-echo b2 > b2
-hg ci -Amb2 -d '1 0'
-echo b3 > b3
-hg ci -Amb3 -d '2 0'
-
-hg log --template '{rev} {parents} {desc}\n'
-
-hg clone . ../rebase
-cd ../rebase
-
-hg up -C 1
-echo '% rebase b onto r1'
-hg transplant -a -b tip
-hg log --template '{rev} {parents} {desc}\n'
-
-hg clone ../t ../prune
-cd ../prune
-
-hg up -C 1
-echo '% rebase b onto r1, skipping b2'
-hg transplant -a -b tip -p 3
-hg log --template '{rev} {parents} {desc}\n'
-
-echo '% remote transplant'
-hg clone -r 1 ../t ../remote
-cd ../remote
-hg transplant --log -s ../t 2 4
-hg log --template '{rev} {parents} {desc}\n'
-
-echo '% skip previous transplants'
-hg transplant -s ../t -a -b 4
-hg log --template '{rev} {parents} {desc}\n'
-
-echo '% skip local changes transplanted to the source'
-echo b4 > b4
-hg ci -Amb4 -d '3 0'
-hg clone ../t ../pullback
-cd ../pullback
-hg transplant -s ../remote -a -b tip
-
-echo '% 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
-cd ../rp
-hg transplant -s http://localhost:$HGPORT/ 2 4
-hg log --template '{rev} {parents} {desc}\n'
-
-echo '% transplant --continue'
-hg init ../tc
-cd ../tc
-cat <<EOF > foo
-foo
-bar
-baz
-EOF
-echo toremove > toremove
-hg ci -Amfoo
-cat <<EOF > foo
-foo2
-bar2
-baz2
-EOF
-rm toremove
-echo added > added
-hg ci -Amfoo2
-echo bar > bar
-hg ci -Ambar
-echo bar2 >> bar
-hg ci -mbar2
-hg up 0
-echo foobar > foo
-hg ci -mfoobar
-hg transplant 1:3
-# transplant -c shouldn't use an old changeset
-hg up -C
-rm added
-hg transplant 1
-hg transplant --continue
-hg transplant 1:3
-hg locate
-cd ..
-
-# Test transplant --merge (issue 1111)
-echo % test transplant merge
-hg init t1111
-cd t1111
-echo a > a
-hg ci -Am adda
-echo b >> a
-hg ci -m appendb
-echo c >> a
-hg ci -m appendc
-hg up -C 0
-echo d >> a
-hg ci -m appendd
-echo % tranplant
-hg transplant -m 1
-cd ..
-
-echo '% test transplant into empty repository'
-hg init empty
-cd empty
-hg transplant -s ../t -b tip -a
-cd ..
-
-echo '% 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 |\
-    sed 's/filtering.*/filtering/g'
-hg log --template '{rev} {parents} {desc}\n'
-cd ..
-
-echo '% test filter with failed patch'
-cd filter
-hg up 0
-echo foo > b1
-hg ci -d '0 0' -Am foo
-hg transplant 1 --filter ./test-filter |\
-    sed 's/filtering.*/filtering/g'
-cd ..
-
-echo '% 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
-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
-python -c "file('b', 'wb').write('b\r\nb\r\n')"
-hg ci -m addb
-hg transplant -s ../twin1 tip
-python -c "print repr(file('b', 'rb').read())"
-cd ..
--- a/tests/test-transplant.out	Thu Aug 12 21:52:53 2010 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-adding r1
-adding r2
-0 files updated, 0 files merged, 1 files removed, 0 files unresolved
-adding b1
-created new head
-adding b2
-adding b3
-4  b3
-3  b2
-2 0:17ab29e464c6  b1
-1  r2
-0  r1
-updating to branch default
-4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-1 files updated, 0 files merged, 3 files removed, 0 files unresolved
-% rebase b onto r1
-applying 37a1297eb21b
-37a1297eb21b transplanted to e234d668f844
-applying 722f4667af76
-722f4667af76 transplanted to 539f377d78df
-applying a53251cdf717
-a53251cdf717 transplanted to ffd6818a3975
-7  b3
-6  b2
-5 1:d11e3596cc1a  b1
-4  b3
-3  b2
-2 0:17ab29e464c6  b1
-1  r2
-0  r1
-updating to branch default
-4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-1 files updated, 0 files merged, 3 files removed, 0 files unresolved
-% rebase b onto r1, skipping b2
-applying 37a1297eb21b
-37a1297eb21b transplanted to e234d668f844
-applying a53251cdf717
-a53251cdf717 transplanted to 7275fda4d04f
-6  b3
-5 1:d11e3596cc1a  b1
-4  b3
-3  b2
-2 0:17ab29e464c6  b1
-1  r2
-0  r1
-% remote transplant
-requesting all changes
-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
-searching for changes
-applying 37a1297eb21b
-37a1297eb21b transplanted to c19cf0ccb069
-applying a53251cdf717
-a53251cdf717 transplanted to f7fe5bf98525
-3  b3
-(transplanted from a53251cdf717679d1907b289f991534be05c997a)
-2  b1
-(transplanted from 37a1297eb21b3ef5c5d2ffac22121a0988ed9f21)
-1  r2
-0  r1
-% skip previous transplants
-searching for changes
-applying 722f4667af76
-722f4667af76 transplanted to 47156cd86c0b
-4  b2
-3  b3
-(transplanted from a53251cdf717679d1907b289f991534be05c997a)
-2  b1
-(transplanted from 37a1297eb21b3ef5c5d2ffac22121a0988ed9f21)
-1  r2
-0  r1
-% skip local changes transplanted to the source
-adding b4
-updating to branch default
-4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-searching for changes
-applying 4333daefcb15
-4333daefcb15 transplanted to 5f42c04e07cc
-% remote transplant with pull
-requesting all changes
-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
-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
-2  b3
-1  b1
-0  r1
-% transplant --continue
-adding foo
-adding toremove
-adding added
-removing toremove
-adding bar
-2 files updated, 0 files merged, 2 files removed, 0 files unresolved
-created new head
-applying a1e30dd1b8e7
-patching file foo
-Hunk #1 FAILED at 0
-1 out of 1 hunks FAILED -- saving rejects to file foo.rej
-patch failed to apply
-abort: Fix up the merge and run hg transplant --continue
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-applying a1e30dd1b8e7
-patching file foo
-Hunk #1 FAILED at 0
-1 out of 1 hunks FAILED -- saving rejects to file foo.rej
-patch failed to apply
-abort: Fix up the merge and run hg transplant --continue
-a1e30dd1b8e7 transplanted as f1563cf27039
-skipping already applied revision 1:a1e30dd1b8e7
-applying 1739ac5f6139
-1739ac5f6139 transplanted to d649c221319f
-applying 0282d5fbbe02
-0282d5fbbe02 transplanted to 77418277ccb3
-added
-bar
-foo
-% test transplant merge
-adding a
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-created new head
-% tranplant
-applying 42dc4432fd35
-1:42dc4432fd35 merged at a9f4acbac129
-% test transplant into empty repository
-requesting all changes
-adding changesets
-adding manifests
-adding file changes
-added 4 changesets with 4 changes to 4 files
-% test filter
-filtering
-applying 17ab29e464c6
-17ab29e464c6 transplanted to e9ffc54ea104
-filtering
-applying 37a1297eb21b
-37a1297eb21b transplanted to 348b36d0b6a5
-filtering
-applying 722f4667af76
-722f4667af76 transplanted to 0aa6979afb95
-filtering
-applying a53251cdf717
-a53251cdf717 transplanted to 14f8512272b5
-3  b3
-2  b2
-1  b1
-0  r2
-% test filter with failed patch
-0 files updated, 0 files merged, 3 files removed, 0 files unresolved
-adding b1
-adding test-filter
-created new head
-file b1 already exists
-1 out of 1 hunks FAILED -- saving rejects to file b1.rej
-abort: Fix up the merge and run hg transplant --continue
-filtering
-applying 348b36d0b6a5
-patch failed to apply
-% test with a win32ext like setup (differing EOLs)
-adding a
-adding b
-nothing changed
-applying 2e849d776c17
-2e849d776c17 transplanted to 589cea8ba85b
-'a\r\nb\r\n'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-transplant.t	Thu Aug 12 22:14:19 2010 +0900
@@ -0,0 +1,353 @@
+  $ 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
+
+  $ hg transplant -a -b tip
+  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
+
+  $ 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
+
+
+remote transplant
+
+  $ hg clone -r 1 ../t ../remote
+  requesting all changes
+  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
+  $ hg transplant --log -s ../t 2 4
+  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
+  requesting all changes
+  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
+
+transplant --continue
+
+  $ hg init ../tc
+  $ cd ../tc
+  $ cat <<EOF > foo
+  > foo
+  > bar
+  > baz
+  > EOF
+  $ echo toremove > toremove
+  $ hg ci -Amfoo
+  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
+  $ hg ci -Ambar
+  adding bar
+  $ echo bar2 >> bar
+  $ hg ci -mbar2
+  $ hg up 0
+  2 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  $ echo foobar > foo
+  $ hg ci -mfoobar
+  created new head
+  $ hg transplant 1:3
+  applying a1e30dd1b8e7
+  patching file foo
+  Hunk #1 FAILED at 0
+  1 out of 1 hunks FAILED -- saving rejects to file foo.rej
+  patch failed to apply
+  abort: Fix up the merge and run hg transplant --continue
+
+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
+  applying a1e30dd1b8e7
+  patching file foo
+  Hunk #1 FAILED at 0
+  1 out of 1 hunks FAILED -- saving rejects to file foo.rej
+  patch failed to apply
+  abort: Fix up the merge and run hg transplant --continue
+  $ hg transplant --continue
+  a1e30dd1b8e7 transplanted as f1563cf27039
+  $ hg transplant 1:3
+  skipping already applied revision 1:a1e30dd1b8e7
+  applying 1739ac5f6139
+  1739ac5f6139 transplanted to d649c221319f
+  applying 0282d5fbbe02
+  0282d5fbbe02 transplanted to 77418277ccb3
+  $ hg locate
+  added
+  bar
+  foo
+  $ cd ..
+
+Test transplant --merge (issue 1111)
+test transplant merge
+
+  $ 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
+
+tranplant
+
+  $ hg transplant -m 1
+  applying 42dc4432fd35
+  1:42dc4432fd35 merged at a9f4acbac129
+  $ cd ..
+
+test transplant into empty repository
+
+  $ hg init empty
+  $ cd empty
+  $ hg transplant -s ../t -b tip -a
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 4 changesets with 4 changes to 4 files
+  $ cd ..
+
+
+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
+  filtering .*
+  applying 17ab29e464c6
+  17ab29e464c6 transplanted to e9ffc54ea104
+  filtering .*
+  applying 37a1297eb21b
+  37a1297eb21b transplanted to 348b36d0b6a5
+  filtering .*
+  applying 722f4667af76
+  722f4667af76 transplanted to 0aa6979afb95
+  filtering .*
+  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
+  $ hg ci -d '0 0' -Am foo
+  adding b1
+  adding test-filter
+  created new head
+  $ hg transplant 1 --filter ./test-filter
+  filtering .*
+  applying 348b36d0b6a5
+  file b1 already exists
+  1 out of 1 hunks FAILED -- saving rejects to file b1.rej
+  patch failed to apply
+  abort: Fix up the merge and run hg transplant --continue
+  $ cd ..
+
+
+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
+  $ python -c "file('b', 'wb').write('b\r\nb\r\n')"
+  $ hg ci -m addb
+  nothing changed
+  $ hg transplant -s ../twin1 tip
+  applying 2e849d776c17
+  2e849d776c17 transplanted to 589cea8ba85b
+  $ python -c "print repr(file('b', 'rb').read())"
+  'a\r\nb\r\n'
+  $ cd ..