diff options
author | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-08-22 14:49:51 +0100 |
---|---|---|
committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-08-22 14:49:51 +0100 |
commit | a498da43c7fdb9f24b73680c02a4a3588cc62d9a (patch) | |
tree | daf8119dae1749b5165b68033a1b23a7375ce9ce /tests/test-convert-splicemap.t | |
download | mercurial-tarball-a498da43c7fdb9f24b73680c02a4a3588cc62d9a.tar.gz |
Tarball conversion
Diffstat (limited to 'tests/test-convert-splicemap.t')
-rw-r--r-- | tests/test-convert-splicemap.t | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/tests/test-convert-splicemap.t b/tests/test-convert-splicemap.t new file mode 100644 index 0000000..d5bb15f --- /dev/null +++ b/tests/test-convert-splicemap.t @@ -0,0 +1,222 @@ + + $ echo "[extensions]" >> $HGRCPATH + $ echo "convert=" >> $HGRCPATH + $ echo 'graphlog =' >> $HGRCPATH + $ glog() + > { + > hg glog --template '{rev}:{node|short} "{desc|firstline}"\ + > files: {files}\n' "$@" + > } + $ hg init repo1 + $ cd repo1 + $ echo a > a + $ hg ci -Am adda + adding a + $ echo b > b + $ echo a >> a + $ hg ci -Am addb + adding b + $ PARENTID1=`hg id --debug -i` + $ echo c > c + $ hg ci -Am addc + adding c + $ PARENTID2=`hg id --debug -i` + $ cd .. + $ glog -R repo1 + @ 2:e55c719b85b6 "addc" files: c + | + o 1:6d4c2037ddc2 "addb" files: a b + | + o 0:07f494440405 "adda" files: a + + + $ hg init repo2 + $ cd repo2 + $ echo b > a + $ echo d > d + $ hg ci -Am addaandd + adding a + adding d + $ CHILDID1=`hg id --debug -i` + $ echo d >> d + $ hg ci -Am changed + $ CHILDID2=`hg id --debug -i` + $ echo e > e + $ hg ci -Am adde + adding e + $ cd .. + $ glog -R repo2 + @ 2:a39b65753b0a "adde" files: e + | + o 1:e4ea00df9189 "changed" files: d + | + o 0:527cdedf31fb "addaandd" files: a d + + +test invalid splicemap + + $ cat > splicemap <<EOF + > $CHILDID2 + > EOF + $ hg convert --splicemap splicemap repo2 repo1 + abort: syntax error in splicemap(1): child parent1[,parent2] expected + [255] + +splice repo2 on repo1 + + $ cat > splicemap <<EOF + > $CHILDID1 $PARENTID1 + > $CHILDID2 $PARENTID2,$CHILDID1 + > + > EOF + $ cat splicemap + 527cdedf31fbd5ea708aa14eeecf53d4676f38db 6d4c2037ddc2cb2627ac3a244ecce35283268f8e + e4ea00df91897da3079a10fab658c1eddba6617b e55c719b85b60e5102fac26110ba626e7cb6b7dc,527cdedf31fbd5ea708aa14eeecf53d4676f38db + + $ hg clone repo1 target1 + updating to branch default + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg convert --splicemap splicemap repo2 target1 + scanning source... + sorting... + converting... + 2 addaandd + spliced in ['6d4c2037ddc2cb2627ac3a244ecce35283268f8e'] as parents of 527cdedf31fbd5ea708aa14eeecf53d4676f38db + 1 changed + spliced in ['e55c719b85b60e5102fac26110ba626e7cb6b7dc', '527cdedf31fbd5ea708aa14eeecf53d4676f38db'] as parents of e4ea00df91897da3079a10fab658c1eddba6617b + 0 adde + $ glog -R target1 + o 5:16bc847b02aa "adde" files: e + | + o 4:e30e4fee3418 "changed" files: d + |\ + | o 3:e673348c3a3c "addaandd" files: a d + | | + @ | 2:e55c719b85b6 "addc" files: c + |/ + o 1:6d4c2037ddc2 "addb" files: a b + | + o 0:07f494440405 "adda" files: a + + + + +Test splicemap and conversion order + + $ hg init ordered + $ cd ordered + $ echo a > a + $ hg ci -Am adda + adding a + $ hg branch branch + marked working directory as branch branch + (branches are permanent and global, did you want a bookmark?) + $ echo a >> a + $ hg ci -Am changea + $ echo a >> a + $ hg ci -Am changeaagain + $ hg up 0 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo b > b + $ hg ci -Am addb + adding b + +We want 2 to depend on 1 and 3. Since 3 is always converted after 2, +the bug should be exhibited with all conversion orders. + + $ cat > ../splicemap <<EOF + > `(hg id -r 2 -i --debug)` `(hg id -r 1 -i --debug)`, `(hg id -r 3 -i --debug)` + > EOF + $ cd .. + $ cat splicemap + 7c364e7fa7d70ae525610c016317ed717b519d97 717d54d67e6c31fd75ffef2ff3042bdd98418437, 102a90ea7b4a3361e4082ed620918c261189a36a + +Test regular conversion + + $ hg convert --splicemap splicemap ordered ordered-hg1 + initializing destination ordered-hg1 repository + scanning source... + sorting... + converting... + 3 adda + 2 changea + 1 addb + 0 changeaagain + spliced in ['717d54d67e6c31fd75ffef2ff3042bdd98418437', '102a90ea7b4a3361e4082ed620918c261189a36a'] as parents of 7c364e7fa7d70ae525610c016317ed717b519d97 + $ glog -R ordered-hg1 + o 3:4cb04b9afbf2 "changeaagain" files: a + |\ + | o 2:102a90ea7b4a "addb" files: b + | | + o | 1:717d54d67e6c "changea" files: a + |/ + o 0:07f494440405 "adda" files: a + + +Test conversion with parent revisions already in dest, using source +and destination identifiers. Test unknown splicemap target. + + $ hg convert -r1 ordered ordered-hg2 + initializing destination ordered-hg2 repository + scanning source... + sorting... + converting... + 1 adda + 0 changea + $ hg convert -r3 ordered ordered-hg2 + scanning source... + sorting... + converting... + 0 addb + $ cat > splicemap <<EOF + > `(hg -R ordered id -r 2 -i --debug)` \ + > `(hg -R ordered-hg2 id -r 1 -i --debug)`,\ + > `(hg -R ordered-hg2 id -r 2 -i --debug)` + > deadbeef102a90ea7b4a3361e4082ed620918c26 deadbeef102a90ea7b4a3361e4082ed620918c27 + > EOF + $ hg convert --splicemap splicemap ordered ordered-hg2 + scanning source... + splice map revision deadbeef102a90ea7b4a3361e4082ed620918c26 is not being converted, ignoring + sorting... + converting... + 0 changeaagain + spliced in ['717d54d67e6c31fd75ffef2ff3042bdd98418437', '102a90ea7b4a3361e4082ed620918c261189a36a'] as parents of 7c364e7fa7d70ae525610c016317ed717b519d97 + $ glog -R ordered-hg2 + o 3:4cb04b9afbf2 "changeaagain" files: a + |\ + | o 2:102a90ea7b4a "addb" files: b + | | + o | 1:717d54d67e6c "changea" files: a + |/ + o 0:07f494440405 "adda" files: a + + +Test empty conversion + + $ hg convert --splicemap splicemap ordered ordered-hg2 + scanning source... + splice map revision deadbeef102a90ea7b4a3361e4082ed620918c26 is not being converted, ignoring + sorting... + converting... + +Test clonebranches + + $ hg --config convert.hg.clonebranches=true convert \ + > --splicemap splicemap ordered ordered-hg3 + initializing destination ordered-hg3 repository + scanning source... + abort: revision 717d54d67e6c31fd75ffef2ff3042bdd98418437 not found in destination repository (lookups with clonebranches=true are not implemented) + [255] + +Test invalid dependency + + $ cat > splicemap <<EOF + > `(hg -R ordered id -r 2 -i --debug)` \ + > deadbeef102a90ea7b4a3361e4082ed620918c26,\ + > `(hg -R ordered-hg2 id -r 2 -i --debug)` + > EOF + $ hg convert --splicemap splicemap ordered ordered-hg4 + initializing destination ordered-hg4 repository + scanning source... + abort: unknown splice map parent: deadbeef102a90ea7b4a3361e4082ed620918c26 + [255] |