summaryrefslogtreecommitdiff
path: root/tests/test-convert-hg-svn.t
diff options
context:
space:
mode:
authorLorry <lorry@roadtrain.codethink.co.uk>2012-08-22 14:49:51 +0100
committerLorry <lorry@roadtrain.codethink.co.uk>2012-08-22 14:49:51 +0100
commita498da43c7fdb9f24b73680c02a4a3588cc62d9a (patch)
treedaf8119dae1749b5165b68033a1b23a7375ce9ce /tests/test-convert-hg-svn.t
downloadmercurial-tarball-a498da43c7fdb9f24b73680c02a4a3588cc62d9a.tar.gz
Tarball conversion
Diffstat (limited to 'tests/test-convert-hg-svn.t')
-rw-r--r--tests/test-convert-hg-svn.t105
1 files changed, 105 insertions, 0 deletions
diff --git a/tests/test-convert-hg-svn.t b/tests/test-convert-hg-svn.t
new file mode 100644
index 0000000..d7ebedd
--- /dev/null
+++ b/tests/test-convert-hg-svn.t
@@ -0,0 +1,105 @@
+
+ $ "$TESTDIR/hghave" svn svn-bindings || exit 80
+ $ echo "[extensions]" >> $HGRCPATH
+ $ echo "convert = " >> $HGRCPATH
+ $ echo "mq = " >> $HGRCPATH
+
+ $ SVNREPOPATH=`pwd`/svn-repo
+#if windows
+ $ SVNREPOURL=file:///`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
+#else
+ $ SVNREPOURL=file://`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
+#endif
+
+ $ svnadmin create "$SVNREPOPATH"
+ $ cat > "$SVNREPOPATH"/hooks/pre-revprop-change <<EOF
+ > #!/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
+ $ chmod +x "$SVNREPOPATH"/hooks/pre-revprop-change
+ $ svn co "$SVNREPOURL" "$SVNREPOPATH"-wc
+ Checked out revision 0.
+ $ cd "$SVNREPOPATH"-wc
+ $ 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
+
+ $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg | grep -v initializing
+ scanning source...
+ sorting...
+ converting...
+ 0 added a
+ $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
+ scanning source...
+ sorting...
+ converting...
+
+second roundtrip should do nothing
+
+ $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg
+ scanning source...
+ sorting...
+ converting...
+ $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
+ scanning source...
+ sorting...
+ converting...
+
+new hg rev
+
+ $ hg clone "$SVNREPOPATH"-hg "$SVNREPOPATH"-work
+ updating to branch default
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ cd "$SVNREPOPATH"-work
+ $ 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
+
+ $ hg --cwd "$SVNREPOPATH"-hg pull -q "$SVNREPOPATH"-work
+ $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
+ scanning source...
+ sorting...
+ converting...
+ 1 b
+ 0 emtpy
+
+svn back to hg should do nothing
+
+ $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg
+ scanning source...
+ sorting...
+ converting...
+
+hg back to svn should do nothing
+
+ $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
+ scanning source...
+ sorting...
+ converting...