changeset 11916:d1ea16ca6520

tests: unify test-subrepo-svn
author Martin Geisler <mg@lazybytes.net>
date Tue, 17 Aug 2010 16:53:03 +0200
parents d521e72314f9
children b03cf2349a80
files tests/test-subrepo-svn tests/test-subrepo-svn.out tests/test-subrepo-svn.t
diffstat 3 files changed, 193 insertions(+), 202 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test-subrepo-svn	Tue Aug 17 16:52:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-#!/bin/sh
-
-"$TESTDIR/hghave" svn || exit 80
-
-fix_path()
-{
-    tr '\\' /
-}
-
-escapedwd=`pwd | fix_path`
-# SVN wants all paths to start with a slash. Unfortunately,
-# Windows ones don't. Handle that.
-expr "$escapedwd" : "\/" > /dev/null
-if [ $? -ne 0 ]; then
-    escapedwd="/$escapedwd"
-fi
-escapedwd=`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$escapedwd"`
-filterpath="s|$escapedwd|/root|"
-filteroutofdate='s/ in transaction.*/ is out of date/;s/Out of date: /File /'
-filterexternal="s|Fetching external item into '.*/s/externals'|Fetching external item into 's/externals'|g"
-
-echo % create subversion repo
-
-SVNREPO="file://$escapedwd/svn-repo"
-WCROOT="`pwd`/svn-wc"
-svnadmin create svn-repo
-svn co "$SVNREPO" svn-wc
-cd svn-wc
-mkdir src
-echo alpha > src/alpha
-svn add src
-mkdir externals
-echo other > externals/other
-svn add externals
-svn ci -m 'Add alpha'
-svn up
-cat > extdef <<EOF
-externals -r1 $SVNREPO/externals
-EOF
-svn propset -F extdef svn:externals src
-svn ci -m 'Setting externals'
-cd ..
-
-echo % create hg repo
-mkdir sub
-cd sub
-hg init t
-cd t
-
-echo % first revision, no sub
-echo a > a
-hg ci -Am0
-
-echo % add first svn sub with leading whitespaces
-echo "s = [svn]       $SVNREPO/src" >> .hgsub
-svn co --quiet "$SVNREPO"/src s
-hg add .hgsub
-hg ci -m1
-echo % debugsub
-hg debugsub | sed "$filterpath"
-
-echo
-echo % change file in svn and hg, commit
-echo a >> a
-echo alpha >> s/alpha
-hg commit -m 'Message!' | sed "$filterexternal" \
-    | sed 's:Sending.*s/alpha:Sending        s/alpha:g'
-hg debugsub | sed "$filterpath"
-
-echo
-echo a > s/a
-echo % should be empty despite change to s/a
-hg st
-
-echo
-echo % add a commit from svn
-cd "$WCROOT"/src
-svn up
-echo xyz >> alpha
-svn propset svn:mime-type 'text/xml' alpha
-svn ci -m 'amend a from svn'
-cd ../../sub/t
-
-echo % this commit from hg will fail
-echo zzz >> s/alpha
-hg ci -m 'amend alpha from hg' 2>&1 | sed "$filteroutofdate"
-svn revert -q s/alpha
-
-echo % this commit fails because of meta changes
-svn propset svn:mime-type 'text/html' s/alpha
-hg ci -m 'amend alpha from hg' 2>&1 | sed "$filteroutofdate"
-svn revert -q s/alpha
-
-echo % this commit fails because of externals changes
-echo zzz > s/externals/other
-hg ci -m 'amend externals from hg'
-svn revert -q s/externals/other
-
-echo % this commit fails because of externals meta changes
-svn propset svn:mime-type 'text/html' s/externals/other
-hg ci -m 'amend externals from hg'
-svn revert -q s/externals/other
-
-echo
-echo % clone
-cd ..
-hg clone t tc | fix_path
-cd tc
-echo % debugsub in clone
-hg debugsub | sed "$filterpath"
-
-echo % verify subrepo is contained within the repo directory
-python -c "import os.path; print os.path.exists('s')"
--- a/tests/test-subrepo-svn.out	Tue Aug 17 16:52:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-% create subversion repo
-Checked out revision 0.
-A         src
-A         src/alpha
-A         externals
-A         externals/other
-Adding         externals
-Adding         externals/other
-Adding         src
-Adding         src/alpha
-Transmitting file data ..
-Committed revision 1.
-At revision 1.
-property 'svn:externals' set on 'src'
-Sending        src
-
-Committed revision 2.
-% create hg repo
-% first revision, no sub
-adding a
-% add first svn sub with leading whitespaces
-committing subrepository s
-% debugsub
-path s
- source   file:///root/svn-repo/src
- revision 2
-
-% change file in svn and hg, commit
-committing subrepository s
-Sending        s/alpha
-Transmitting file data .
-Committed revision 3.
-
-Fetching external item into 's/externals'
-External at revision 1.
-
-At revision 3.
-path s
- source   file:///root/svn-repo/src
- revision 3
-
-% should be empty despite change to s/a
-
-% add a commit from svn
-U    alpha
-
-Fetching external item into 'externals'
-A    externals/other
-Updated external to revision 1.
-
-Updated to revision 3.
-property 'svn:mime-type' set on 'alpha'
-Sending        src/alpha
-Transmitting file data .
-Committed revision 4.
-% this commit from hg will fail
-committing subrepository s
-abort: svn: Commit failed (details follow):
-svn: File '/src/alpha' is out of date
-% this commit fails because of meta changes
-property 'svn:mime-type' set on 's/alpha'
-committing subrepository s
-abort: svn: Commit failed (details follow):
-svn: File '/src/alpha' is out of date
-% this commit fails because of externals changes
-committing subrepository s
-abort: cannot commit svn externals
-% this commit fails because of externals meta changes
-property 'svn:mime-type' set on 's/externals/other'
-committing subrepository s
-abort: cannot commit svn externals
-
-% clone
-updating to branch default
-A    tc/s/alpha
- U   tc/s
-
-Fetching external item into 'tc/s/externals'
-A    tc/s/externals/other
-Checked out external at revision 1.
-
-Checked out revision 3.
-3 files updated, 0 files merged, 0 files removed, 0 files unresolved
-% debugsub in clone
-path s
- source   file:///root/svn-repo/src
- revision 3
-% verify subrepo is contained within the repo directory
-True
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-subrepo-svn.t	Tue Aug 17 16:53:03 2010 +0200
@@ -0,0 +1,193 @@
+  $ "$TESTDIR/hghave" svn || exit 80
+
+  $ fix_path()
+  > {
+  >     tr '\\' /
+  > }
+
+  $ escapedwd=`pwd | fix_path`
+
+SVN wants all paths to start with a slash. Unfortunately, Windows ones
+don't. Handle that.
+
+  $ expr "$escapedwd" : "\/" > /dev/null
+  $ if [ $? -ne 0 ]; then
+  >     escapedwd="/$escapedwd"
+  > fi
+  $ escapedwd=`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$escapedwd"`
+  $ filterpath="s|$escapedwd|/root|"
+  $ filteroutofdate='s/ in transaction.*/ is out of date/;s/Out of date: /File /'
+
+create subversion repo
+
+  $ SVNREPO="file://$escapedwd/svn-repo"
+  $ WCROOT="`pwd`/svn-wc"
+  $ svnadmin create svn-repo
+  $ svn co "$SVNREPO" svn-wc
+  Checked out revision 0.
+  $ cd svn-wc
+  $ mkdir src
+  $ echo alpha > src/alpha
+  $ svn add src
+  A         src
+  A         src/alpha
+  $ mkdir externals
+  $ echo other > externals/other
+  $ svn add externals
+  A         externals
+  A         externals/other
+  $ svn ci -m 'Add alpha'
+  Adding         externals
+  Adding         externals/other
+  Adding         src
+  Adding         src/alpha
+  Transmitting file data ..
+  Committed revision 1.
+  $ svn up
+  At revision 1.
+  $ echo "externals -r1 $SVNREPO/externals" > extdef
+  $ svn propset -F extdef svn:externals src
+  property 'svn:externals' set on 'src'
+  $ svn ci -m 'Setting externals'
+  Sending        src
+  
+  Committed revision 2.
+  $ cd ..
+
+create hg repo
+
+  $ mkdir sub
+  $ cd sub
+  $ hg init t
+  $ cd t
+
+first revision, no sub
+
+  $ echo a > a
+  $ hg ci -Am0
+  adding a
+
+add first svn sub with leading whitespaces
+
+  $ echo "s = [svn]       $SVNREPO/src" >> .hgsub
+  $ svn co --quiet "$SVNREPO"/src s
+  $ hg add .hgsub
+  $ hg ci -m1
+  committing subrepository s
+
+debugsub
+
+  $ hg debugsub | sed "$filterpath"
+  path s
+   source   file:///root/svn-repo/src
+   revision 2
+
+change file in svn and hg, commit
+
+  $ echo a >> a
+  $ echo alpha >> s/alpha
+  $ hg commit -m 'Message!' \
+  >     | sed 's:Sending.*s/alpha:Sending        s/alpha:g'
+  committing subrepository s
+  Sending        s/alpha
+  Transmitting file data .
+  Committed revision 3.
+  
+  Fetching external item into '.*/s/externals'
+  External at revision 1.
+  
+  At revision 3.
+  $ hg debugsub | sed "$filterpath"
+  path s
+   source   file:///root/svn-repo/src
+   revision 3
+
+  $ echo a > s/a
+
+should be empty despite change to s/a
+
+  $ hg st
+
+add a commit from svn
+
+  $ cd "$WCROOT"/src
+  $ svn up
+  U    alpha
+  
+  Fetching external item into 'externals'
+  A    externals/other
+  Updated external to revision 1.
+  
+  Updated to revision 3.
+  $ echo xyz >> alpha
+  $ svn propset svn:mime-type 'text/xml' alpha
+  property 'svn:mime-type' set on 'alpha'
+  $ svn ci -m 'amend a from svn'
+  Sending        src/alpha
+  Transmitting file data .
+  Committed revision 4.
+  $ cd ../../sub/t
+
+this commit from hg will fail
+
+  $ echo zzz >> s/alpha
+  $ hg ci -m 'amend alpha from hg' 2>&1 | sed "$filteroutofdate"
+  committing subrepository s
+  abort: svn: Commit failed (details follow):
+  svn: File '/src/alpha' is out of date
+  $ svn revert -q s/alpha
+
+this commit fails because of meta changes
+
+  $ svn propset svn:mime-type 'text/html' s/alpha
+  property 'svn:mime-type' set on 's/alpha'
+  $ hg ci -m 'amend alpha from hg' 2>&1 | sed "$filteroutofdate"
+  committing subrepository s
+  abort: svn: Commit failed (details follow):
+  svn: File '/src/alpha' is out of date
+  $ svn revert -q s/alpha
+
+this commit fails because of externals changes
+
+  $ echo zzz > s/externals/other
+  $ hg ci -m 'amend externals from hg'
+  committing subrepository s
+  abort: cannot commit svn externals
+  $ svn revert -q s/externals/other
+
+this commit fails because of externals meta changes
+
+  $ svn propset svn:mime-type 'text/html' s/externals/other
+  property 'svn:mime-type' set on 's/externals/other'
+  $ hg ci -m 'amend externals from hg'
+  committing subrepository s
+  abort: cannot commit svn externals
+  $ svn revert -q s/externals/other
+
+clone
+
+  $ cd ..
+  $ hg clone t tc | fix_path
+  updating to branch default
+  A    tc/s/alpha
+   U   tc/s
+  
+  Fetching external item into 'tc/s/externals'
+  A    tc/s/externals/other
+  Checked out external at revision 1.
+  
+  Checked out revision 3.
+  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ cd tc
+
+debugsub in clone
+
+  $ hg debugsub | sed "$filterpath"
+  path s
+   source   file:///root/svn-repo/src
+   revision 3
+
+verify subrepo is contained within the repo directory
+
+  $ python -c "import os.path; print os.path.exists('s')"
+  True