view tests/test-convert-cvs-branch @ 8564:6b9ec23b09fc

named branches: improve pre-push logic (issue736) Each named branch is considered separately, and the push is allowed if no new branch heads are created for any named branch to be pushed. Due to some tests's use of --debug, their output will change after this addition. This has been fixed as well. Co-contributor: Henrik Stuart <henrik.stuart@edlund.dk>
author Sune Foldager <cryo@cyanite.org>
date Sat, 23 May 2009 17:04:31 +0200
parents 5b7da468531b
children 6019e6517f95
line wrap: on
line source

#!/bin/sh

# This is http://www.selenic.com/mercurial/bts/issue1148

"$TESTDIR/hghave" cvs || exit 80

cvscall()
{
    cvs -f "$@"
}

echo "[extensions]" >> $HGRCPATH
echo "convert = " >> $HGRCPATH
echo "graphlog = " >> $HGRCPATH
echo "[convert]" >> $HGRCPATH
echo "cvsps=builtin" >> $HGRCPATH
echo "cvsps.cache=0" >> $HGRCPATH

echo % create cvs repository
mkdir cvsrepo
cd cvsrepo
CVSROOT=`pwd`
export CVSROOT
CVS_OPTIONS=-f
export CVS_OPTIONS
cd ..

cvscall -q -d "$CVSROOT" init

echo % Create a new project

mkdir src
cd src
echo "1" > a
echo "1" > b
cvscall import -m "init" src v0 r0 | sort
cd ..
cvscall co src
cd src

echo % Branch the project

cvscall tag -b BRANCH
cvscall up -r BRANCH > /dev/null

echo % Modify file a, then b, then a 

echo "2" > a
cvscall ci -m "mod a" | grep '<--' | sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'

echo "2" > b
cvscall ci -m "mod b" | grep '<--' | sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'

echo "3" > a
cvscall ci -m "mod a again" | grep '<--' | sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'

echo % Convert

cd ..
hg convert src | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'

echo % Check the result

hg -R src-hg glog --template '{rev} ({branches}) {desc} files: {files}\n'