--- /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 ..