Mercurial > hg-stable
changeset 12527:9a0528fd9172
tests: unify test-convert-hg-svn
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 26 Sep 2010 16:53:06 -0500 |
parents | 9892949bd969 |
children | f6b206417ba4 |
files | tests/test-convert-hg-svn tests/test-convert-hg-svn.out tests/test-convert-hg-svn.t |
diffstat | 3 files changed, 108 insertions(+), 117 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-convert-hg-svn Sun Sep 26 16:48:57 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -#!/bin/sh - -"$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 -if [ $? -ne 0 ]; then - svnurl="/$svnurl" -fi -svnurl="file://$svnurl" -svn co "$svnurl" "$svnpath"-wc - -cd "$svnpath"-wc -echo a > a -svn add a -svn ci -m'added a' a - -cd .. - -echo % initial roundtrip -hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg | grep -v initializing -hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc - -echo % second roundtrip should do nothing -hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg -hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc - -echo % new hg rev - -hg clone "$svnpath"-hg "$svnpath"-work -cd "$svnpath"-work -echo b > b -hg add b -hg ci -mb -echo '% adding an empty revision' -hg qnew -m emtpy empty -hg qfinish -a -cd .. - -echo % echo hg to svn -hg --cwd "$svnpath"-hg pull -q "$svnpath"-work -hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc - -echo % svn back to hg should do nothing -hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg -echo % hg back to svn should do nothing -hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
--- a/tests/test-convert-hg-svn.out Sun Sep 26 16:48:57 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -Checked out revision 0. -A a -Adding a -Transmitting file data . -Committed revision 1. -% initial roundtrip -scanning source... -sorting... -converting... -0 added a -scanning source... -sorting... -converting... -% second roundtrip should do nothing -scanning source... -sorting... -converting... -scanning source... -sorting... -converting... -% new hg rev -updating to branch default -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% adding an empty revision -% echo hg to svn -scanning source... -sorting... -converting... -1 b -0 emtpy -% svn back to hg should do nothing -scanning source... -sorting... -converting... -% hg back to svn should do nothing -scanning source... -sorting... -converting...
--- /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...