view tests/test-convert-cvs-branch @ 12307:0852da25a31b stable

eol: setup the repo.ui in reposetup() This fixes problems some have reported using the eol extension together with TortoiseHg. It ensures the ui associated with the repository has the preupdate.eol hook configured.
author Steve Borho <steve@borho.org>
date Wed, 15 Sep 2010 17:46:51 -0500
parents 56a5f80556f5
children
line wrap: on
line source

#!/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.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 ..