test-subrepo-svn
106 lines
| 2.0 KiB
| text/plain
|
TextLexer
/ tests / test-subrepo-svn
Augie Fackler
|
r10178 | #!/bin/sh | ||
"$TESTDIR/hghave" svn || exit 80 | ||||
Patrick Mezard
|
r10198 | 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 | ||||
filterpath="sed s|$escapedwd|/root|" | ||||
Augie Fackler
|
r10178 | |||
echo % create subversion repo | ||||
SVNREPO="file://$escapedwd/svn-repo" | ||||
Mads Kiilerich
|
r10267 | WCROOT="`pwd`/svn-wc" | ||
Augie Fackler
|
r10178 | svnadmin create svn-repo | ||
svn co $SVNREPO svn-wc | ||||
cd svn-wc | ||||
Patrick Mezard
|
r10273 | mkdir src | ||
echo alpha > src/alpha | ||||
svn add src | ||||
mkdir externals | ||||
echo other > externals/other | ||||
svn add externals | ||||
Augie Fackler
|
r10178 | svn ci -m 'Add alpha' | ||
Patrick Mezard
|
r10273 | svn up | ||
cat > extdef <<EOF | ||||
externals -r1 $SVNREPO/externals | ||||
EOF | ||||
svn propset -F extdef svn:externals src | ||||
svn ci -m 'Setting externals' | ||||
Augie Fackler
|
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 | ||||
echo % add first svn sub | ||||
Patrick Mezard
|
r10273 | echo "s = [svn]$SVNREPO/src" >> .hgsub | ||
svn co --quiet $SVNREPO/src s | ||||
Augie Fackler
|
r10178 | hg add .hgsub | ||
hg ci -m1 | ||||
echo % debugsub | ||||
hg debugsub | $filterpath | ||||
echo | ||||
echo % change file in svn and hg, commit | ||||
echo a >> a | ||||
echo alpha >> s/alpha | ||||
hg commit -m 'Message!' | ||||
hg debugsub | $filterpath | ||||
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
|
r10273 | cd "$WCROOT"/src | ||
Augie Fackler
|
r10178 | svn up | ||
echo xyz >> alpha | ||||
Patrick Mezard
|
r10273 | svn propset svn:mime-type 'text/xml' alpha | ||
Augie Fackler
|
r10178 | svn ci -m 'amend a from svn' | ||
Patrick Mezard
|
r10273 | cd ../../sub/t | ||
Augie Fackler
|
r10178 | echo % this commit from hg will fail | ||
echo zzz >> s/alpha | ||||
hg ci -m 'amend alpha from hg' | ||||
Patrick Mezard
|
r10273 | 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' | ||||
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
|
r10178 | |||
echo | ||||
echo % clone | ||||
cd .. | ||||
Patrick Mezard
|
r10198 | hg clone t tc | fix_path | ||
Augie Fackler
|
r10178 | cd tc | ||
echo % debugsub in clone | ||||
hg debugsub | $filterpath | ||||