Mercurial > public > mercurial-scm > hg-stable
diff tests/test-convert-svn-source.t @ 12370:f98010f57a5e
tests: unify test-convert-svn-*
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Tue, 21 Sep 2010 18:40:33 +0200 |
parents | tests/test-convert-svn-source@c52057614c72 |
children | a5b77eb0409b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-svn-source.t Tue Sep 21 18:40:33 2010 +0200 @@ -0,0 +1,179 @@ + + $ "$TESTDIR/hghave" svn svn-bindings || exit 80 + + $ fixpath() + > { + > tr '\\' / + > } + $ cat > $HGRCPATH <<EOF + > [extensions] + > convert = + > graphlog = + > EOF + + $ svnadmin create svn-repo + $ svnadmin setuuid svn-repo 00000000-0000-0000-0000-000000000000 + $ svnpath=`pwd | fixpath` + + + $ expr "$svnpath" : "\/" > /dev/null + > if [ $? -ne 0 ]; then + > svnpath="/$svnpath" + > fi + > svnurl="file://$svnpath/svn-repo" + +Now test that it works with trunk/tags layout, but no branches yet. + +Initial svn import + + $ mkdir projB + $ cd projB + $ mkdir trunk + $ mkdir tags + $ cd .. + + $ svnurl="file://$svnpath/svn-repo/proj%20B" + $ svn import -m "init projB" projB "$svnurl" | fixpath + Adding projB/trunk + Adding projB/tags + + Committed revision 1. + +Update svn repository + + $ svn co "$svnurl"/trunk B | fixpath + Checked out revision 1. + $ cd B + $ echo hello > 'letter .txt' + $ svn add 'letter .txt' + A letter .txt + $ svn ci -m hello + Adding letter .txt + Transmitting file data . + Committed revision 2. + + $ "$TESTDIR/svn-safe-append.py" world 'letter .txt' + $ svn ci -m world + Sending letter .txt + Transmitting file data . + Committed revision 3. + + $ svn copy -m "tag v0.1" "$svnurl"/trunk "$svnurl"/tags/v0.1 + + Committed revision 4. + + $ "$TESTDIR/svn-safe-append.py" 'nice day today!' 'letter .txt' + $ svn ci -m "nice day" + Sending letter .txt + Transmitting file data . + Committed revision 5. + $ cd .. + +Convert to hg once + + $ hg convert "$svnurl" B-hg + initializing destination B-hg repository + scanning source... + sorting... + converting... + 3 init projB + 2 hello + 1 world + 0 nice day + updating tags + +Update svn repository again + + $ cd B + $ "$TESTDIR/svn-safe-append.py" "see second letter" 'letter .txt' + $ echo "nice to meet you" > letter2.txt + $ svn add letter2.txt + A letter2.txt + $ svn ci -m "second letter" + Sending letter .txt + Adding letter2.txt + Transmitting file data .. + Committed revision 6. + + $ svn copy -m "tag v0.2" "$svnurl"/trunk "$svnurl"/tags/v0.2 + + Committed revision 7. + + $ "$TESTDIR/svn-safe-append.py" "blah-blah-blah" letter2.txt + $ svn ci -m "work in progress" + Sending letter2.txt + Transmitting file data . + Committed revision 8. + $ cd .. + +######################################## + +Test incremental conversion + + $ hg convert "$svnurl" B-hg + scanning source... + sorting... + converting... + 1 second letter + 0 work in progress + updating tags + + $ cd B-hg + $ hg glog --template '{rev} {desc|firstline} files: {files}\n' + o 7 update tags files: .hgtags + | + o 6 work in progress files: letter2.txt + | + o 5 second letter files: letter .txt letter2.txt + | + o 4 update tags files: .hgtags + | + o 3 nice day files: letter .txt + | + o 2 world files: letter .txt + | + o 1 hello files: letter .txt + | + o 0 init projB files: + + $ hg tags -q + tip + v0.2 + v0.1 + $ cd .. + +Test filemap + $ echo 'include letter2.txt' > filemap + $ hg convert --filemap filemap "$svnurl"/trunk fmap + initializing destination fmap repository + scanning source... + sorting... + converting... + 5 init projB + 4 hello + 3 world + 2 nice day + 1 second letter + 0 work in progress + $ hg glog -R fmap --template '{rev} {desc|firstline} files: {files}\n' + o 1 work in progress files: letter2.txt + | + o 0 second letter files: letter2.txt + + +Test stop revision + $ hg convert --rev 1 "$svnurl"/trunk stoprev + initializing destination stoprev repository + scanning source... + sorting... + converting... + 0 init projB + +Check convert_revision extra-records. +This is also the only place testing more than one extra field in a revision. + + $ cd stoprev + $ hg tip --debug | grep extra + extra: branch=default + extra: convert_revision=svn:00000000-0000-0000-0000-000000000000/proj B/trunk@1 + $ cd ..