view tests/test-convert-cvs-branch @ 11059:ef4aa90b1e58

Move 'findrenames' code into its own file. The next few patches will increase the size of the "findrenames" functionality. This patch simply moves the function into its own file to avoid clutter building up in 'cmdutil.py'.
author David Greenaway <hg-dev@davidgreenaway.com>
date Sat, 03 Apr 2010 11:58:16 +1100
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 ..