diff --git a/tests/test-convert-hg-startrev.out b/tests/test-convert-hg-startrev.out deleted file mode 100644 --- a/tests/test-convert-hg-startrev.out +++ /dev/null @@ -1,88 +0,0 @@ -1 files updated, 0 files merged, 2 files removed, 0 files unresolved -merging a and e to e -2 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -% convert from null revision -initializing destination empty repository -scanning source... -sorting... -converting... -% convert from zero revision -initializing destination full repository -scanning source... -sorting... -converting... -5 0: add a b -4 1: add c -3 2: copy e from a, change b -2 3: change a -1 4: merge 2 and 3, copy d from b -0 5: change a -o 5 "5: change a" files: a -| -o 4 "4: merge 2 and 3, copy d from b" files: d e -|\ -| o 3 "3: change a" files: a -| | -o | 2 "2: copy e from a, change b" files: b e -| | -o | 1 "1: add c" files: c -|/ -o 0 "0: add a b" files: a b - -% convert from merge parent -initializing destination conv1 repository -scanning source... -sorting... -converting... -3 1: add c -2 2: copy e from a, change b -1 4: merge 2 and 3, copy d from b -0 5: change a -o 3 "5: change a" files: a -| -o 2 "4: merge 2 and 3, copy d from b" files: a d e -| -o 1 "2: copy e from a, change b" files: b e -| -o 0 "1: add c" files: a b c - -% check copy preservation -changeset: 2:d67b1d48a835 -user: test -date: Thu Jan 01 00:00:04 1970 +0000 -summary: 4: merge 2 and 3, copy d from b - -changeset: 1:462c431cf47d -user: test -date: Thu Jan 01 00:00:02 1970 +0000 -summary: 2: copy e from a, change b - -% check copy removal on missing parent -changeset: 2:d67b1d48a835 -user: test -date: Thu Jan 01 00:00:04 1970 +0000 -summary: 4: merge 2 and 3, copy d from b - -a -a -a -b -b -% convert from merge -initializing destination conv4 repository -scanning source... -sorting... -converting... -1 4: merge 2 and 3, copy d from b -0 5: change a -o 1 "5: change a" files: a -| -o 0 "4: merge 2 and 3, copy d from b" files: a b c d e - -5 files updated, 0 files merged, 0 files removed, 0 files unresolved -a -a -a -b -b diff --git a/tests/test-convert-hg-startrev b/tests/test-convert-hg-startrev.t old mode 100755 new mode 100644 rename from tests/test-convert-hg-startrev rename to tests/test-convert-hg-startrev.t --- a/tests/test-convert-hg-startrev +++ b/tests/test-convert-hg-startrev.t @@ -1,61 +1,152 @@ -#!/bin/sh + + $ cat > $HGRCPATH < [extensions] + > graphlog = + > convert = + > EOF + + $ glog() + > { + > hg -R "$1" glog --template '{rev} "{desc}" files: {files}\n' + > } + + $ hg init source + $ cd source -echo '[extensions]' >> $HGRCPATH -echo 'graphlog =' >> $HGRCPATH -echo 'convert =' >> $HGRCPATH + $ echo a > a + $ echo b > b + $ hg ci -d '0 0' -qAm '0: add a b' + $ echo c > c + $ hg ci -d '1 0' -qAm '1: add c' + $ hg copy a e + $ echo b >> b + $ hg ci -d '2 0' -qAm '2: copy e from a, change b' + $ hg up -C 0 + 1 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ echo a >> a + $ hg ci -d '3 0' -qAm '3: change a' + $ hg merge + merging a and e to e + 2 files updated, 1 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg copy b d + $ hg ci -d '4 0' -qAm '4: merge 2 and 3, copy d from b' + $ echo a >> a + $ hg ci -d '5 0' -qAm '5: change a' + $ cd .. -glog() -{ - hg -R "$1" glog --template '{rev} "{desc}" files: {files}\n' -} +Convert from null revision + + $ hg convert --config convert.hg.startrev=null source empty + initializing destination empty repository + scanning source... + sorting... + converting... + + $ glog empty + +Convert from zero revision -hg init source -cd source + $ hg convert --config convert.hg.startrev=0 source full + initializing destination full repository + scanning source... + sorting... + converting... + 5 0: add a b + 4 1: add c + 3 2: copy e from a, change b + 2 3: change a + 1 4: merge 2 and 3, copy d from b + 0 5: change a + + $ glog full + o 5 "5: change a" files: a + | + o 4 "4: merge 2 and 3, copy d from b" files: d e + |\ + | o 3 "3: change a" files: a + | | + o | 2 "2: copy e from a, change b" files: b e + | | + o | 1 "1: add c" files: c + |/ + o 0 "0: add a b" files: a b + +Convert from merge parent -echo a > a -echo b > b -hg ci -d '0 0' -qAm '0: add a b' -echo c > c -hg ci -d '1 0' -qAm '1: add c' -hg copy a e -echo b >> b -hg ci -d '2 0' -qAm '2: copy e from a, change b' -hg up -C 0 -echo a >> a -hg ci -d '3 0' -qAm '3: change a' -hg merge -hg copy b d -hg ci -d '4 0' -qAm '4: merge 2 and 3, copy d from b' -echo a >> a -hg ci -d '5 0' -qAm '5: change a' -cd .. + $ hg convert --config convert.hg.startrev=1 source conv1 + initializing destination conv1 repository + scanning source... + sorting... + converting... + 3 1: add c + 2 2: copy e from a, change b + 1 4: merge 2 and 3, copy d from b + 0 5: change a -echo % convert from null revision -hg convert --config convert.hg.startrev=null source empty -glog empty + $ glog conv1 + o 3 "5: change a" files: a + | + o 2 "4: merge 2 and 3, copy d from b" files: a d e + | + o 1 "2: copy e from a, change b" files: b e + | + o 0 "1: add c" files: a b c + + $ cd conv1 + +Check copy preservation + + $ hg log --follow --copies e + changeset: 2:d67b1d48a835 + user: test + date: Thu Jan 01 00:00:04 1970 +0000 + summary: 4: merge 2 and 3, copy d from b + + changeset: 1:462c431cf47d + user: test + date: Thu Jan 01 00:00:02 1970 +0000 + summary: 2: copy e from a, change b + +Check copy removal on missing parent -echo % convert from zero revision -hg convert --config convert.hg.startrev=0 source full -glog full + $ hg log --follow --copies d + changeset: 2:d67b1d48a835 + user: test + date: Thu Jan 01 00:00:04 1970 +0000 + summary: 4: merge 2 and 3, copy d from b + + $ hg cat -r tip a b + a + a + a + b + b + $ hg -q verify + $ cd .. + +Convert from merge -echo % convert from merge parent -hg convert --config convert.hg.startrev=1 source conv1 -glog conv1 -cd conv1 -echo % check copy preservation -hg log --follow --copies e -echo % check copy removal on missing parent -hg log --follow --copies d -hg cat -r tip a b -hg -q verify -cd .. - -echo % convert from merge -hg convert --config convert.hg.startrev=4 source conv4 -glog conv4 -cd conv4 -hg up -C -hg cat -r tip a b -hg -q verify -cd .. - + $ hg convert --config convert.hg.startrev=4 source conv4 + initializing destination conv4 repository + scanning source... + sorting... + converting... + 1 4: merge 2 and 3, copy d from b + 0 5: change a + $ glog conv4 + o 1 "5: change a" files: a + | + o 0 "4: merge 2 and 3, copy d from b" files: a b c d e + + $ cd conv4 + $ hg up -C + 5 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg cat -r tip a b + a + a + a + b + b + $ hg -q verify + $ cd ..