##// 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
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.
expr $escapedwd : "\/" > /dev/null
if [ $? -ne 0 ]; then
escapedwd='/'$escapedwd
fi
filterpath="sed s|$escapedwd|/root|"
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
svn co $SVNREPO svn-wc
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
externals -r1 $SVNREPO/externals
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
echo % add first svn sub
Patrick Mezard
subrepo: handle svn externals and meta changes (issue1982)...
r10273 echo "s = [svn]$SVNREPO/src" >> .hgsub
svn co --quiet $SVNREPO/src s
Augie Fackler
subrepo: Subversion support
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
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
hg ci -m 'amend alpha from hg'
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
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
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
hg debugsub | $filterpath