|
|
#!/bin/sh
|
|
|
|
|
|
# This is http://mercurial.selenic.com/bts/issue1148
|
|
|
# and http://mercurial.selenic.com/bts/issue1447
|
|
|
|
|
|
"$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'
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
echo % issue 1447
|
|
|
cvscall()
|
|
|
{
|
|
|
echo cvs -f "$@"
|
|
|
cvs -f "$@"
|
|
|
sleep 1
|
|
|
}
|
|
|
|
|
|
cvsci()
|
|
|
{
|
|
|
echo cvs -f ci "$@"
|
|
|
cvs -f ci "$@" >/dev/null 2>&1
|
|
|
sleep 1
|
|
|
}
|
|
|
|
|
|
cvscall -Q -d `pwd`/cvsmaster2 init >/dev/null 2>&1
|
|
|
cd cvsmaster2
|
|
|
CVSROOT=`pwd`
|
|
|
export CVSROOT
|
|
|
mkdir foo
|
|
|
cd ..
|
|
|
cvscall -Q co -d cvswork2 foo
|
|
|
|
|
|
cd cvswork2
|
|
|
echo foo > a.txt
|
|
|
echo bar > b.txt
|
|
|
cvscall -Q add a.txt b.txt
|
|
|
cvsci -m "Initial commit"
|
|
|
|
|
|
echo foo > b.txt
|
|
|
cvsci -m "Fix b on HEAD"
|
|
|
|
|
|
echo bar > a.txt
|
|
|
cvsci -m "Small fix in a on HEAD"
|
|
|
|
|
|
cvscall -Q tag -b BRANCH
|
|
|
cvscall -Q up -P -rBRANCH
|
|
|
|
|
|
echo baz > b.txt
|
|
|
cvsci -m "Change on BRANCH in b"
|
|
|
|
|
|
hg debugcvsps -x --parents foo | sed -e 's/Author:.*/Author:/' -e 's/Date:.*/Date:/'
|
|
|
|
|
|
cd ..
|
|
|
|
|
|
|