#!/bin/sh # This feature requires use of builtin cvsps! "$TESTDIR/hghave" cvs || exit 80 set -e echo "[extensions]" >> $HGRCPATH echo "convert = " >> $HGRCPATH echo "[convert]" >> $HGRCPATH echo "cvsps=builtin" >> $HGRCPATH echo % create cvs repository with one project mkdir cvsrepo cd cvsrepo export CVSROOT=`pwd` export CVS_OPTIONS=-f cd .. filterpath() { eval "$@" | sed "s:$CVSROOT:*REPO*:g" } cvscall() { echo cvs -f "$@" cvs -f "$@" 2>&1 } # output of 'cvs ci' varies unpredictably, so just discard it cvsci() { echo cvs -f ci "$@" cvs -f ci "$@" >/dev/null 2>&1 } filterpath cvscall -d "$CVSROOT" init mkdir cvsrepo/proj cvscall -q co proj echo % create file1 on the trunk cd proj touch file1 cvscall -Q add file1 cvsci -m"add file1 on trunk" file1 echo % create two branches cvscall -q tag -b v1_0 cvscall -q tag -b v1_1 echo % create file2 on branch v1_0 cvscall -q up -rv1_0 touch file2 cvscall -Q add file2 cvsci -m"add file2 on branch v1_0" file2 echo % create file3, file4 on branch v1_1 cvscall -Q up -rv1_1 touch file3 touch file4 cvscall -Q add file3 file4 cvsci -m"add file3, file4 on branch v1_1" file3 file4 echo % merge file2 from v1_0 to v1_1 cvscall -q up -jv1_0 cvsci -m"merge file2 from v1_0 to v1_1" echo % cvs rlog output filterpath cvscall -q rlog proj | egrep '^(RCS file|revision)' echo % convert to hg cd .. filterpath hg convert proj proj.hg echo % hg log output hg -R proj.hg log --template "{rev} {desc}\n"