##// END OF EJS Templates
tests: unify test-subrepo-relative-path
tests: unify test-subrepo-relative-path

File last commit:

r11142:0bf79efe default
r11915:d521e723 default
Show More
test-subrepo-svn
113 lines | 2.6 KiB | text/plain | TextLexer
Augie Fackler
subrepo: Subversion support
r10178 #!/bin/sh
"$TESTDIR/hghave" svn || exit 80
Patrick Mezard
test-subrepo-svn: normalize OS specific path separator
r10198 fix_path()
{
tr '\\' /
}
escapedwd=`pwd | fix_path`
# SVN wants all paths to start with a slash. Unfortunately,
# Windows ones don't. Handle that.
Mads Kiilerich
Tests with spaces in paths...
r10775 expr "$escapedwd" : "\/" > /dev/null
Patrick Mezard
test-subrepo-svn: normalize OS specific path separator
r10198 if [ $? -ne 0 ]; then
Mads Kiilerich
Tests with spaces in paths...
r10775 escapedwd="/$escapedwd"
Patrick Mezard
test-subrepo-svn: normalize OS specific path separator
r10198 fi
Benoit Boissinot
test-subrepo-svn: properly escape the url, make it work for svn 1.5 again
r10791 escapedwd=`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$escapedwd"`
Mads Kiilerich
Tests with spaces in paths...
r10775 filterpath="s|$escapedwd|/root|"
Brett Cannon
subrepo: fix repo root path handling in svn subrepo
r10954 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"
Augie Fackler
subrepo: Subversion support
r10178
echo % create subversion repo
SVNREPO="file://$escapedwd/svn-repo"
Mads Kiilerich
test-subrepo-svn: remove bashism
r10267 WCROOT="`pwd`/svn-wc"
Augie Fackler
subrepo: Subversion support
r10178 svnadmin create svn-repo
Mads Kiilerich
Tests with spaces in paths...
r10775 svn co "$SVNREPO" svn-wc
Augie Fackler
subrepo: Subversion support
r10178 cd svn-wc
Patrick Mezard
subrepo: handle svn externals and meta changes (issue1982)...
r10273 mkdir src
echo alpha > src/alpha
svn add src
mkdir externals
echo other > externals/other
svn add externals
Augie Fackler
subrepo: Subversion support
r10178 svn ci -m 'Add alpha'
Patrick Mezard
subrepo: handle svn externals and meta changes (issue1982)...
r10273 svn up
cat > extdef <<EOF
Benoit Boissinot
test-subrepo-svn: properly escape the url, make it work for svn 1.5 again
r10791 externals -r1 $SVNREPO/externals
Patrick Mezard
subrepo: handle svn externals and meta changes (issue1982)...
r10273 EOF
svn propset -F extdef svn:externals src
svn ci -m 'Setting externals'
Augie Fackler
subrepo: Subversion support
r10178 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
David Soria Parra
subrepo: make sure that the source path is stripped...
r10457 echo % add first svn sub with leading whitespaces
echo "s = [svn] $SVNREPO/src" >> .hgsub
Mads Kiilerich
Tests with spaces in paths...
r10775 svn co --quiet "$SVNREPO"/src s
Augie Fackler
subrepo: Subversion support
r10178 hg add .hgsub
hg ci -m1
echo % debugsub
Mads Kiilerich
Tests with spaces in paths...
r10775 hg debugsub | sed "$filterpath"
Augie Fackler
subrepo: Subversion support
r10178
echo
echo % change file in svn and hg, commit
echo a >> a
echo alpha >> s/alpha
Patrick Mezard
test-subrepo-svn: fix strange svn behaviour on windows...
r11142 hg commit -m 'Message!' | sed "$filterexternal" \
| sed 's:Sending.*s/alpha:Sending s/alpha:g'
Mads Kiilerich
Tests with spaces in paths...
r10775 hg debugsub | sed "$filterpath"
Augie Fackler
subrepo: Subversion support
r10178
echo
echo a > s/a
echo % should be empty despite change to s/a
hg st
echo
echo % add a commit from svn
Patrick Mezard
subrepo: handle svn externals and meta changes (issue1982)...
r10273 cd "$WCROOT"/src
Augie Fackler
subrepo: Subversion support
r10178 svn up
echo xyz >> alpha
Patrick Mezard
subrepo: handle svn externals and meta changes (issue1982)...
r10273 svn propset svn:mime-type 'text/xml' alpha
Augie Fackler
subrepo: Subversion support
r10178 svn ci -m 'amend a from svn'
Patrick Mezard
subrepo: handle svn externals and meta changes (issue1982)...
r10273 cd ../../sub/t
Augie Fackler
subrepo: Subversion support
r10178 echo % this commit from hg will fail
echo zzz >> s/alpha
Brett Cannon
subrepo: fix repo root path handling in svn subrepo
r10954 hg ci -m 'amend alpha from hg' 2>&1 | sed "$filteroutofdate"
Patrick Mezard
subrepo: handle svn externals and meta changes (issue1982)...
r10273 svn revert -q s/alpha
echo % this commit fails because of meta changes
svn propset svn:mime-type 'text/html' s/alpha
Brett Cannon
subrepo: fix repo root path handling in svn subrepo
r10954 hg ci -m 'amend alpha from hg' 2>&1 | sed "$filteroutofdate"
Patrick Mezard
subrepo: handle svn externals and meta changes (issue1982)...
r10273 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
Augie Fackler
subrepo: Subversion support
r10178
echo
echo % clone
cd ..
Patrick Mezard
test-subrepo-svn: normalize OS specific path separator
r10198 hg clone t tc | fix_path
Augie Fackler
subrepo: Subversion support
r10178 cd tc
echo % debugsub in clone
Mads Kiilerich
Tests with spaces in paths...
r10775 hg debugsub | sed "$filterpath"
Brett Cannon
subrepo: fix repo root path handling in svn subrepo
r10954
echo % verify subrepo is contained within the repo directory
python -c "import os.path; print os.path.exists('s')"