view tests/test-convert-cvs-builtincvsps-cvsnt-mergepoints @ 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 ec8b8a0f494b
children
line wrap: on
line source

#!/bin/sh

"$TESTDIR/hghave" cvs || exit 80

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

hgcat()
{
    hg --cwd src-hg cat -r tip "$1"
}

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

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

cvscall -q -d "$CVSROOT" init

cvscall -q checkout -d cvsworktmp .
cd cvsworktmp
mkdir foo
cvscall -q add foo | sed -e 's/Directory .* added to the repository//g'
cd foo
echo foo > foo.txt
cvscall -q add foo.txt 
cvscall -q ci -m "foo.txt" | sed 's/.*,v.*/checking in/g'
 
cd ../..
rm -rf cvsworktmp

cvscall -q checkout -d cvswork foo

cd cvswork

cvscall -q rtag -b -R MYBRANCH1 foo
cvscall -q up -P -r MYBRANCH1
echo bar > foo.txt
cvscall -q ci -m "bar" | sed 's/.*,v.*/checking in/g'
echo baz > foo.txt
cvscall -q ci -m "baz" | sed 's/.*,v.*/checking in/g'

cvscall -q rtag -b -R -r MYBRANCH1 MYBRANCH1_2 foo
cvscall -q up -P -r MYBRANCH1_2

echo bazzie > foo.txt
cvscall -q ci -m "bazzie" | sed 's/.*,v.*/checking in/g'

cvscall -q rtag -b -R MYBRANCH1_1 foo
cvscall -q up -P -r MYBRANCH1_1

echo quux > foo.txt
cvscall -q ci -m "quux" | sed 's/.*,v.*/checking in/g'
cvscall -q up -P -jMYBRANCH1 | sed 's/RCS file: .*,v/merging MYBRANCH1/g'
echo xyzzy > foo.txt
cvscall -q ci -m "merge" | sed 's/.*,v.*/checking in/g'

cvscall -q up -P -A

cvscall -q up -P -jMYBRANCH1_2 | sed 's/RCS file: .*,v/merging MYBRANCH1_2/g'
cvscall -q ci -m "merge" | sed 's/.*,v.*/checking in/g'

REALCVS=`which cvs`
echo "for x in \$*; do if [ \"\$x\" = \"rlog\" ]; then echo \"RCS file: $CVSROOT/foo/foo.txt,v\"; cat $TESTDIR/test-convert-cvs-builtincvsps-cvsnt-mergepoints.rlog; exit 0; fi; done; $REALCVS \$*" > cvs
chmod +x cvs
PATH=.:${PATH} hg debugcvsps --parents foo | sed -e 's/Author:.*/Author:/' -e 's/Date:.*/Date:/'

cd ..