##// END OF EJS Templates
tests: make and use a new `svnurlof.py` helper for constructing svn urls...
tests: make and use a new `svnurlof.py` helper for constructing svn urls The previous trick of a Python oneliner and some subshells is too hard to make portable, and this lets us consolidate some Windows-specific logic down to a single place. Differential Revision: https://phab.mercurial-scm.org/D5766

File last commit:

r41518:41bd254b default
r41518:41bd254b default
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
timeless
tests: stabilize svn output...
r28469 $ filter_svn_output () {
FUJIWARA Katsunori
tests: make tests for convert with svn portable...
r28533 > egrep -v 'Committing|Updating|(^$)' | sed -e 's/done$//' || true
timeless
tests: stabilize svn output...
r28469 > }
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
Augie Fackler
tests: make and use a new `svnurlof.py` helper for constructing svn urls...
r41518 $ SVNREPOURL="`$PYTHON $TESTDIR/svnurlof.py \"$SVNREPOPATH\"`"
Mads Kiilerich
tests: cleanup of svn url handling...
r17033
$ 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
timeless
tests: stabilize svn output...
r28469 $ svn ci -m'added a' a | filter_svn_output
Matt Mackall
tests: unify test-convert-hg-svn
r12527 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)