view tests/test-convert-svn-startrev @ 6174:434139080ed4

Permit XML entities to be escaped in template output. Useful for creating XML documents directly from Hg logging. Can also be used for HTML. For use in content, will escape '&', '<', and for completeness '>' (although it is not strictly necessary). For use in attributes, will also escape ' and ". Will also replace nonprinting (ASCII) control characters with spaces, since these are illegal in XML.
author Jesse Glick <jesse.glick@sun.com>
date Mon, 28 Jan 2008 22:19:12 -0500
parents 963000ed8cac
children c1b47c0fd2b6
line wrap: on
line source

#!/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
mkdir branches
mkdir tags
cd ..

svnurl=file://$svnpath/svn-repo/projA
svn import -m "init projA" projA $svnurl | fix_path

echo % update svn repository
svn co $svnurl A | fix_path
cd A
echo a > trunk/a
echo b > trunk/b
svn add trunk/a trunk/b
svn ci -m createab
svn rm trunk/b
svn ci -m removeb
svn up
echo a >> trunk/a
svn ci -m changeaa

echo % branch
svn up
svn copy trunk branches/branch1
echo a >> branches/branch1/a
svn ci -m "branch, changeaaa"

echo a >> branches/branch1/a
echo c > branches/branch1/c
svn add branches/branch1/c
svn ci -m "addc,changeaaaa"
svn up
cd ..

convert()
{
    startrev=$1
    repopath=A-r$startrev-hg
    hg convert --config convert.svn.startrev=$startrev \
        --config convert.svn.trunk=branches/branch1 \
        --config convert.svn.branches="  " \
        --config convert.svn.tags= \
        --datesort $svnurl $repopath
    hg -R $repopath glog --template '#rev# #desc|firstline# files: #files#\n'
    echo
}

echo % convert before branching point
convert 3
echo % convert before branching point
convert 4
echo % convert at branching point
convert 5
echo % convert last revision only
convert 6