##// END OF EJS Templates
changegroup: introduce safeversion()...
changegroup: introduce safeversion() In a few places (at least repair.py and shelve.py), we want to find the best changegroup version that we can assume users of the repo will understand. For example, we choose version 01 by default, but if it's a generaldelta repo, we expect clients to support version 02 anyway, so we choose that for new bundles (for e.g. "hg strip"). Let's create a helper for this functionality in changegroup, so we can reuse it elsewhere later.

File last commit:

r23172:e955549c default
r27929:3b2ac211 stable
Show More
test-convert-hg-svn.t
118 lines | 3.1 KiB | text/troff | Tads3Lexer
/ tests / test-convert-hg-svn.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require svn svn-bindings
Matt Mackall
tests: unify test-convert-hg-svn
r12527
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 $ cat <<EOF >> $HGRCPATH
> [extensions]
> convert =
> mq =
> EOF
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
$ svnadmin create "$SVNREPOPATH"
$ cat > "$SVNREPOPATH"/hooks/pre-revprop-change <<EOF
Matt Mackall
tests: unify test-convert-hg-svn
r12527 > #!/bin/sh
>
> REPOS="$1"
> REV="$2"
> USER="$3"
> PROPNAME="$4"
> ACTION="$5"
>
> if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
> if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-branch" ]; then exit 0; fi
> if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-rev" ]; then exit 0; fi
>
> echo "Changing prohibited revision property" >&2
> exit 1
> EOF
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ chmod +x "$SVNREPOPATH"/hooks/pre-revprop-change
$ svn co "$SVNREPOURL" "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 Checked out revision 0.
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ cd "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 $ echo a > a
$ svn add a
A a
$ svn ci -m'added a' a
Adding a
Transmitting file data .
Committed revision 1.
$ cd ..
initial roundtrip
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg | grep -v initializing
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
0 added a
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
second roundtrip should do nothing
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
new hg rev
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg clone "$SVNREPOPATH"-hg "$SVNREPOPATH"-work
Matt Mackall
tests: unify test-convert-hg-svn
r12527 updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ cd "$SVNREPOPATH"-work
Matt Mackall
tests: unify test-convert-hg-svn
r12527 $ echo b > b
$ hg add b
$ hg ci -mb
adding an empty revision
$ hg qnew -m emtpy empty
$ hg qfinish -a
$ cd ..
echo hg to svn
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg --cwd "$SVNREPOPATH"-hg pull -q "$SVNREPOPATH"-work
$ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
1 b
0 emtpy
svn back to hg should do nothing
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
hg back to svn should do nothing
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
Mads Kiilerich
convert: make subversion revsplit more stable when meeting revisions without @...
r20419
verify which shamap format we are storing and must be able to handle
$ cat svn-repo-hg/.hg/shamap
svn:????????-????-????-????-????????????@1 ???????????????????????????????????????? (glob)
svn:????????-????-????-????-????????????@2 ???????????????????????????????????????? (glob)
svn:????????-????-????-????-????????????@2 ???????????????????????????????????????? (glob)
$ cat svn-repo-wc/.svn/hg-shamap
???????????????????????????????????????? 1 (glob)
???????????????????????????????????????? svn:????????-????-????-????-????????????@2 (glob)
???????????????????????????????????????? svn:????????-????-????-????-????????????@2 (glob)