view tests/test-convert-svn-tags @ 7177:09ed32b79656

mq: Fix --qrefresh --short to work with --exclude and --include pmezard expects hg qref -s -X b to apply the -X to the list of files in the patch, and thus remove b from the patch. That's how it worked before f7fc5f5ecd62. That change seemed sensible, but it wasn't... mpm says (17:22:30) pmezard_: kiilerix1: do you mean that -X should be forbidden with -s ? (17:22:54) pmezard_: kiilerix1: and --include too (17:23:03) mpm: No because you should be able to say hg qref -s foo* -X foo-bar so mpm expects hg qref -s -X b * to apply the -X to the list of files in the working directory, and thus don't include b in the patch This patch tries to make both usecases work by creating a matchfn which uses the include/excludes but not the filelist.
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 19 Oct 2008 16:31:24 +0200
parents 6ec941b6003d
children 90d8dfb481e7
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
mkdir unrelated
cd ..

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

echo % update svn repository
svn co $svnurl A | fix_path
cd A
echo a > trunk/a
svn add trunk/a
svn ci -m adda
"$TESTDIR/svn-safe-append.py" a trunk/a
svn ci -m changea
"$TESTDIR/svn-safe-append.py" a trunk/a
svn ci -m changea2
# Add an unrelated commit to test that tags are bound to the
# correct "from" revision and not a dummy one
"$TESTDIR/svn-safe-append.py" a unrelated/dummy
svn add unrelated/dummy
svn ci -m unrelatedchange
echo % tag current revision
svn up
svn copy trunk tags/trunk.v1
svn copy trunk tags/trunk.badtag
svn ci -m "tagging trunk.v1 trunk.badtag"
"$TESTDIR/svn-safe-append.py" a trunk/a
svn ci -m changea3
echo % fix the bad tag
# trunk.badtag should not show in converted tags
svn up
svn mv tags/trunk.badtag tags/trunk.goodtag
svn ci -m "fix trunk.badtag"
cd ..

echo % convert
hg convert --datesort $svnurl A-hg

cd A-hg
hg glog --template '#rev# #desc|firstline# tags: #tags#\n'
hg tags -q
cd ..

echo % convert without tags
hg convert --datesort --config convert.svn.tags= $svnurl A-notags-hg
hg -R A-notags-hg tags -q