mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
7914c93a87
Subversion allows revisions to be composed of subparts coming from revisions before the parent or from other part of the repository. There is no simple representation for these now, keep the changes but do not track their origins.
72 lines
1.7 KiB
Bash
Executable File
72 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
"$TESTDIR/hghave" svn svn-bindings || exit 80
|
|
|
|
fix_path()
|
|
{
|
|
tr '\\' /
|
|
}
|
|
|
|
echo "[extensions]" >> $HGRCPATH
|
|
echo "convert = " >> $HGRCPATH
|
|
echo "hgext.graphlog =" >> $HGRCPATH
|
|
|
|
svnadmin create svn-repo
|
|
|
|
svnpath=`pwd | fix_path`
|
|
# SVN wants all paths to start with a slash. Unfortunately,
|
|
# Windows ones don't. Handle that.
|
|
expr $svnpath : "\/" > /dev/null
|
|
if [ $? -ne 0 ]; then
|
|
svnpath='/'$svnpath
|
|
fi
|
|
|
|
echo % initial svn import
|
|
mkdir projA
|
|
cd projA
|
|
mkdir trunk
|
|
echo a > trunk/a
|
|
mkdir trunk/d1
|
|
mkdir trunk/d2
|
|
echo b > trunk/d1/b
|
|
echo c > trunk/d1/c
|
|
echo d > trunk/d2/d
|
|
cd ..
|
|
|
|
svnurl=file://$svnpath/svn-repo/projA
|
|
svn import -m "init projA" projA $svnurl | fix_path
|
|
|
|
# Build a module renaming chain which used to confuse the converter.
|
|
echo % update svn repository
|
|
svn co $svnurl A | fix_path
|
|
cd A
|
|
"$TESTDIR/svn-safe-append.py" a trunk/a
|
|
"$TESTDIR/svn-safe-append.py" c trunk/d1/c
|
|
svn ci -m commitbeforemove
|
|
svn mv $svnurl/trunk $svnurl/subproject -m movedtrunk
|
|
svn up
|
|
mkdir subproject/trunk
|
|
svn add subproject/trunk
|
|
svn ci -m createtrunk
|
|
mkdir subproject/branches
|
|
svn add subproject/branches
|
|
svn ci -m createbranches
|
|
svn mv $svnurl/subproject/d1 $svnurl/subproject/trunk/d1 -m moved1
|
|
svn mv $svnurl/subproject/d2 $svnurl/subproject/trunk/d2 -m moved2
|
|
svn up
|
|
"$TESTDIR/svn-safe-append.py" b subproject/trunk/d1/b
|
|
svn rm subproject/trunk/d2
|
|
svn ci -m "changeb and rm d2"
|
|
svn mv $svnurl/subproject/trunk/d1 $svnurl/subproject/branches/d1 -m moved1again
|
|
echo % copy a directory from a past revision
|
|
svn copy -r 7 $svnurl/subproject/trunk/d2 $svnurl/subproject/trunk -m copydirfrompast
|
|
cd ..
|
|
|
|
echo % convert trunk and branches
|
|
hg convert --datesort $svnurl/subproject A-hg
|
|
|
|
cd A-hg
|
|
hg glog --template '#rev# #desc|firstline# files: #files#\n'
|
|
hg branches | sed 's/:.*/:/'
|
|
cd ..
|