##// END OF EJS Templates
subrepo: change default path in hgrc of subrepo after cloning...
subrepo: change default path in hgrc of subrepo after cloning Previous behavior was to put in the cloned subrepos the path found in the original main repo. However it isn't valid for relative path and it seems more logical to reference instead the subrepos working copy path of the original main repo.

File last commit:

r10273:e898bc78 default
r10378:e1401c74 default
Show More
test-subrepo-svn
106 lines | 2.0 KiB | text/plain | TextLexer
#!/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
filterpath="sed s|$escapedwd|/root|"
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
echo "s = [svn]$SVNREPO/src" >> .hgsub
svn co --quiet $SVNREPO/src s
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
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'
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
echo
echo % clone
cd ..
hg clone t tc | fix_path
cd tc
echo % debugsub in clone
hg debugsub | $filterpath