##// END OF EJS Templates
debian: switch to using debhelper and dh_python2 to build debs...
debian: switch to using debhelper and dh_python2 to build debs This is a much larger commit than I'd like, but I honestly don't see a good way to break it up and leave things working. Summary: We now use debian/rules with debhelper to build our debs. This is much more standard, and means we use dh_python2 to do things like handle leaving .pyc files out of the built debs. The resulting package is split into mercurial and mercurial-common, with the former being the hg stub and all the native .sos, and the latter being basically everything else. builddeb and dockerdeb are updated to use the new system. The old way (using dpkg by hand) breaks with the above changes because debian/control no longer contains a version string (that's now guessed from the phony changelog.) Tests are updated to assert that the right files end up in the right debs.

File last commit:

r25472:4d2b9b30 default
r26148:7f49efca 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