--- 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