Mercurial > hg
diff tests/test-convert-hg-svn.t @ 12527:9a0528fd9172
tests: unify test-convert-hg-svn
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 26 Sep 2010 16:53:06 -0500 |
parents | tests/test-convert-hg-svn@c52057614c72 |
children | 0413f68da85c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-hg-svn.t Sun Sep 26 16:53:06 2010 -0500 @@ -0,0 +1,108 @@ + + $ "$TESTDIR/hghave" svn svn-bindings || exit 80 + $ fix_path() + > { + > tr '\\' / + > } + $ echo "[extensions]" >> $HGRCPATH + $ echo "convert = " >> $HGRCPATH + $ echo "mq = " >> $HGRCPATH + $ svnpath=`pwd | fix_path`/svn-repo + $ svnadmin create "$svnpath" + $ cat > "$svnpath"/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 "$svnpath"/hooks/pre-revprop-change + $ + $ # SVN wants all paths to start with a slash. Unfortunately, + $ # Windows ones don't. Handle that. + $ svnurl="$svnpath" + $ expr "$svnurl" : "\/" > /dev/null || svnurl="/$svnurl" + $ svnurl="file://$svnurl" + $ svn co "$svnurl" "$svnpath"-wc + Checked out revision 0. + $ cd "$svnpath"-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 "$svnpath"-wc "$svnpath"-hg | grep -v initializing + scanning source... + sorting... + converting... + 0 added a + $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc + scanning source... + sorting... + converting... + +second roundtrip should do nothing + + $ hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg + scanning source... + sorting... + converting... + $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc + scanning source... + sorting... + converting... + +new hg rev + + $ hg clone "$svnpath"-hg "$svnpath"-work + updating to branch default + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cd "$svnpath"-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 "$svnpath"-hg pull -q "$svnpath"-work + $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc + scanning source... + sorting... + converting... + 1 b + 0 emtpy + +svn back to hg should do nothing + + $ hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg + scanning source... + sorting... + converting... + +hg back to svn should do nothing + + $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc + scanning source... + sorting... + converting...