##// END OF EJS Templates
exchange: support for streaming clone bundles...
exchange: support for streaming clone bundles Now that we have a mechanism to produce and consume streaming clone bundles, we need to teach the human-facing bundle specification parser and the internal bundle file header reading code to be aware of this new format. This patch does so. For the human-facing bundle specification, we choose the name "packed" to describe "streaming clone bundles" because the bundle is essentially a "pack" of raw revlog files that are "packed" together. There should probably be a bikeshed over the name, especially since it is human facing.

File last commit:

r25472:4d2b9b30 default
r26756:9e272a96 default
Show More
test-convert-svn-source.t
254 lines | 7.0 KiB | text/troff | Tads3Lexer
/ tests / test-convert-svn-source.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require svn svn-bindings
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Martin Geisler
tests: don't overwrite HGRCPATH...
r13519 $ cat >> $HGRCPATH <<EOF
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 > [extensions]
Mads Kiilerich
check-code: fix check for trailing whitespace on continued lines too...
r17347 > convert =
Pavel Boldin
convert.svn: branch name which equals trunk means `default' branch (issue2653)...
r13494 > [convert]
> svn.trunk = mytrunk
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 > EOF
$ svnadmin create svn-repo
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ SVNREPOPATH=`pwd`/svn-repo
#if windows
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ SVNREPOURL=file:///`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 #else
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ SVNREPOURL=file://`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 #endif
Ben Goswami
splicemap: improve error handling when source is subversion (issue2084)...
r19122 $ INVALIDREVISIONID=svn:x2147622-4a9f-4db4-a8d3-13562ff547b2/proj%20B/mytrunk@1
$ VALIDREVISIONID=svn:a2147622-4a9f-4db4-a8d3-13562ff547b2/proj%20B/mytrunk/mytrunk@1
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Now test that it works with trunk/tags layout, but no branches yet.
Initial svn import
$ mkdir projB
$ cd projB
Pavel Boldin
convert.svn: branch name which equals trunk means `default' branch (issue2653)...
r13494 $ mkdir mytrunk
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ mkdir tags
$ cd ..
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ svn import -m "init projB" projB "$SVNREPOURL/proj%20B" | sort
Patrick Mezard
test-convert-svn-source: fix non-determinism...
r16525
Mads Kiilerich
tests: add missing path globbing for Windows in svn tests
r17044 Adding projB/mytrunk (glob)
Adding projB/tags (glob)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 Committed revision 1.
Update svn repository
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ svn co "$SVNREPOURL/proj%20B/mytrunk" B
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 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.
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ svn-safe-append.py world 'letter .txt'
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ svn ci -m world
Sending letter .txt
Transmitting file data .
Committed revision 3.
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ svn copy -m "tag v0.1" "$SVNREPOURL/proj%20B/mytrunk" "$SVNREPOURL/proj%20B/tags/v0.1"
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Committed revision 4.
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ svn-safe-append.py 'nice day today!' 'letter .txt'
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ svn ci -m "nice day"
Sending letter .txt
Transmitting file data .
Committed revision 5.
$ cd ..
Julian Cowley
convert: add config option to use the local time zone...
r17974 Convert to hg once and also test localtimezone option
NOTE: This doesn't check all time zones -- it merely determines that
the configuration option is taking effect.
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Julian Cowley
convert: add config option to use the local time zone...
r17974 An arbitrary (U.S.) time zone is used here. TZ=US/Hawaii is selected
since it does not use DST (unlike other U.S. time zones) and is always
a fixed difference from UTC.
$ TZ=US/Hawaii hg convert --config convert.localtimezone=True "$SVNREPOURL/proj%20B" B-hg
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 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
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ svn-safe-append.py "see second letter" 'letter .txt'
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ 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.
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ svn copy -m "tag v0.2" "$SVNREPOURL/proj%20B/mytrunk" "$SVNREPOURL/proj%20B/tags/v0.2"
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Committed revision 7.
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ svn-safe-append.py "blah-blah-blah" letter2.txt
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ svn ci -m "work in progress"
Sending letter2.txt
Transmitting file data .
Committed revision 8.
$ cd ..
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s svn "$SVNREPOURL/proj%20B/non-existent-path" dest
Mads Kiilerich
convert: handle invalid subversion source paths
r14152 initializing destination dest repository
abort: no revision found in module /proj B/non-existent-path
[255]
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 ########################################
Test incremental conversion
Julian Cowley
convert: add config option to use the local time zone...
r17974 $ TZ=US/Hawaii hg convert --config convert.localtimezone=True "$SVNREPOURL/proj%20B" B-hg
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 scanning source...
sorting...
converting...
1 second letter
0 work in progress
updating tags
$ cd B-hg
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G --template '{rev} {desc|firstline} date: {date|date} files: {files}\n'
Julian Cowley
convert: add config option to use the local time zone...
r17974 o 7 update tags date: * +0000 files: .hgtags (glob)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 |
Julian Cowley
convert: add config option to use the local time zone...
r17974 o 6 work in progress date: * -1000 files: letter2.txt (glob)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 |
Julian Cowley
convert: add config option to use the local time zone...
r17974 o 5 second letter date: * -1000 files: letter .txt letter2.txt (glob)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 |
Julian Cowley
convert: add config option to use the local time zone...
r17974 o 4 update tags date: * +0000 files: .hgtags (glob)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 |
Julian Cowley
convert: add config option to use the local time zone...
r17974 o 3 nice day date: * -1000 files: letter .txt (glob)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 |
Julian Cowley
convert: add config option to use the local time zone...
r17974 o 2 world date: * -1000 files: letter .txt (glob)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 |
Julian Cowley
convert: add config option to use the local time zone...
r17974 o 1 hello date: * -1000 files: letter .txt (glob)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 |
Julian Cowley
convert: add config option to use the local time zone...
r17974 o 0 init projB date: * -1000 files: (glob)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
$ hg tags -q
tip
v0.2
v0.1
$ cd ..
Test filemap
$ echo 'include letter2.txt' > filemap
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert --filemap filemap "$SVNREPOURL/proj%20B/mytrunk" fmap
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 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
Pavel Boldin
convert.svn: branch name which equals trunk means `default' branch (issue2653)...
r13494 $ hg -R fmap branch -q
default
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G -R fmap --template '{rev} {desc|firstline} files: {files}\n'
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 o 1 work in progress files: letter2.txt
|
o 0 second letter files: letter2.txt
Mads Kiilerich
convert: introduce --full for converting all files...
r22300 Convert with --full adds and removes files that didn't change
$ cd B
$ echo >> "letter .txt"
$ svn ci -m 'nothing'
Sending letter .txt
Transmitting file data .
Committed revision 9.
$ cd ..
$ echo 'rename letter2.txt letter3.txt' > filemap
$ hg convert --filemap filemap --full "$SVNREPOURL/proj%20B/mytrunk" fmap
scanning source...
sorting...
converting...
0 nothing
$ hg -R fmap st --change tip
A letter .txt
A letter3.txt
R letter2.txt
Ben Goswami
splicemap: improve error handling when source is subversion (issue2084)...
r19122 test invalid splicemap1
$ cat > splicemap <<EOF
> $INVALIDREVISIONID $VALIDREVISIONID
> EOF
$ hg convert --splicemap splicemap "$SVNREPOURL/proj%20B/mytrunk" smap
initializing destination smap repository
abort: splicemap entry svn:x2147622-4a9f-4db4-a8d3-13562ff547b2/proj%20B/mytrunk@1 is not a valid revision identifier
[255]
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Test stop revision
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert --rev 1 "$SVNREPOURL/proj%20B/mytrunk" stoprev
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 initializing destination stoprev repository
scanning source...
sorting...
converting...
0 init projB
Pavel Boldin
convert.svn: branch name which equals trunk means `default' branch (issue2653)...
r13494 $ hg -R stoprev branch -q
default
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
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
Pavel Boldin
convert.svn: branch name which equals trunk means `default' branch (issue2653)...
r13494 extra: convert_revision=svn:........-....-....-....-............/proj B/mytrunk@1 (re)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ cd ..
Patrick Mezard
convert/svn: do not try converting empty head revisions (issue3347)...
r16466
Mads Kiilerich
convert: secret config option for disabling debugsvnlog...
r20420 Test converting empty heads (issue3347).
Also tests getting logs directly without debugsvnlog.
Patrick Mezard
convert/svn: do not try converting empty head revisions (issue3347)...
r16466
$ svnadmin create svn-empty
$ svnadmin load -q svn-empty < "$TESTDIR/svn/empty.svndump"
Mads Kiilerich
convert: secret config option for disabling debugsvnlog...
r20420 $ hg --config convert.svn.trunk= --config convert.svn.debugsvnlog=0 convert svn-empty
Patrick Mezard
convert/svn: do not try converting empty head revisions (issue3347)...
r16466 assuming destination svn-empty-hg
initializing destination svn-empty-hg repository
scanning source...
sorting...
converting...
1 init projA
0 adddir
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg --config convert.svn.trunk= convert "$SVNREPOURL/../svn-empty/trunk"
Patrick Mezard
convert/svn: do not try converting empty head revisions (issue3347)...
r16466 assuming destination trunk-hg
initializing destination trunk-hg repository
scanning source...
sorting...
converting...
1 init projA
0 adddir
Augie Fackler
convert: on svn failure, note libsvn version (issue4043)...
r23583
Test that a too-new repository format is properly rejected:
$ mv svn-empty/format format
$ echo 999 > svn-empty/format
It's important that this command explicitly specify svn, otherwise it
can have surprising side effects (like falling back to a perforce
depot that can be seen from the test environment and slurping from that.)
$ hg convert --source-type svn svn-empty this-will-fail
initializing destination this-will-fail repository
file:/*/$TESTTMP/svn-empty does not look like a Subversion repository to libsvn version 1.*.* (glob)
abort: svn-empty: missing or unsupported repository
[255]
$ mv format svn-empty/format