# HG changeset patch # User Nicolas Dumazet # Date 1281618859 -32400 # Node ID 88c3ff0512707df5e195316f25df4392a1f8e2e1 # Parent ddebb6a690b4bcf866f7d905860ffae7390bedd0 tests: unify test-transplant diff -r ddebb6a690b4 -r 88c3ff051270 tests/test-transplant --- 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 <> $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 < foo -foo -bar -baz -EOF -echo toremove > toremove -hg ci -Amfoo -cat < 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 .. diff -r ddebb6a690b4 -r 88c3ff051270 tests/test-transplant.out --- 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' diff -r ddebb6a690b4 -r 88c3ff051270 tests/test-transplant.t --- /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 <> $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 < foo + > foo + > bar + > baz + > EOF + $ echo toremove > toremove + $ hg ci -Amfoo + adding foo + adding toremove + $ cat < 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 ..