test-convert-hg-svn
79 lines
| 1.7 KiB
| text/plain
|
TextLexer
/ tests / test-convert-hg-svn
Bryan O'Sullivan
|
r5554 | #!/bin/sh | ||
"$TESTDIR/hghave" svn svn-bindings || exit 80 | ||||
fix_path() | ||||
{ | ||||
tr '\\' / | ||||
} | ||||
echo "[extensions]" >> $HGRCPATH | ||||
echo "convert = " >> $HGRCPATH | ||||
Patrick Mezard
|
r10051 | echo "mq = " >> $HGRCPATH | ||
Bryan O'Sullivan
|
r5554 | |||
Patrick Mezard
|
r5809 | svnpath=`pwd | fix_path`/svn-repo | ||
Bryan O'Sullivan
|
r5554 | svnadmin create $svnpath | ||
cat > $svnpath/hooks/pre-revprop-change <<'EOF' | ||||
#!/bin/sh | ||||
REPOS="$1" | ||||
REV="$2" | ||||
USER="$3" | ||||
PROPNAME="$4" | ||||
ACTION="$5" | ||||
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi | ||||
if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-branch" ]; then exit 0; fi | ||||
if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-rev" ]; then exit 0; fi | ||||
echo "Changing prohibited revision property" >&2 | ||||
exit 1 | ||||
EOF | ||||
chmod +x $svnpath/hooks/pre-revprop-change | ||||
Patrick Mezard
|
r5809 | # SVN wants all paths to start with a slash. Unfortunately, | ||
# Windows ones don't. Handle that. | ||||
svnurl=$svnpath | ||||
expr $svnurl : "\/" > /dev/null | ||||
if [ $? -ne 0 ]; then | ||||
svnurl='/'$svnurl | ||||
fi | ||||
svnurl=file://$svnurl | ||||
Bryan O'Sullivan
|
r5554 | svn co $svnurl $svnpath-wc | ||
cd $svnpath-wc | ||||
echo a > a | ||||
svn add a | ||||
svn ci -m'added a' a | ||||
cd .. | ||||
echo % initial roundtrip | ||||
hg convert -s svn -d hg $svnpath-wc $svnpath-hg | grep -v initializing | ||||
hg convert -s hg -d svn $svnpath-hg $svnpath-wc | ||||
echo % second roundtrip should do nothing | ||||
hg convert -s svn -d hg $svnpath-wc $svnpath-hg | ||||
hg convert -s hg -d svn $svnpath-hg $svnpath-wc | ||||
echo % new hg rev | ||||
hg clone $svnpath-hg $svnpath-work | ||||
Patrick Mezard
|
r10051 | cd $svnpath-work | ||
echo b > b | ||||
hg add b | ||||
hg ci -mb | ||||
echo '% adding an empty revision' | ||||
hg qnew -m emtpy empty | ||||
hg qfinish -a | ||||
cd .. | ||||
Bryan O'Sullivan
|
r5554 | |||
echo % echo hg to svn | ||||
hg --cwd $svnpath-hg pull -q $svnpath-work | ||||
hg convert -s hg -d svn $svnpath-hg $svnpath-wc | ||||
echo % svn back to hg should do nothing | ||||
hg convert -s svn -d hg $svnpath-wc $svnpath-hg | ||||
echo % hg back to svn should do nothing | ||||
hg convert -s hg -d svn $svnpath-hg $svnpath-wc | ||||