# HG changeset patch # User Matt Mackall # Date 1285533189 18000 # Node ID 873ca83d6cfd4e1751ee99e966b0001175125da2 # Parent 99232aa664d64dc5805f51d3b3e12e23210909b4 tests: unify test-convert-cvs-branch diff -r 99232aa664d6 -r 873ca83d6cfd tests/test-convert-cvs-branch --- a/tests/test-convert-cvs-branch Sun Sep 26 14:50:58 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,112 +0,0 @@ -#!/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 .. - diff -r 99232aa664d6 -r 873ca83d6cfd tests/test-convert-cvs-branch.out --- a/tests/test-convert-cvs-branch.out Sun Sep 26 14:50:58 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -% create cvs repository -% Create a new project - - -N src/a -N src/b -No conflicts created by this import -cvs checkout: Updating src -U src/a -U src/b -% Branch the project -cvs tag: Tagging . -T a -T b -cvs update: Updating . -% Modify file a, then b, then a -cvs commit: Examining . -checking in src/a,v -cvs commit: Examining . -checking in src/b,v -cvs commit: Examining . -checking in src/a,v -% Convert -assuming destination src-hg -initializing destination src-hg repository -connecting to cvsrepo -scanning source... -collecting CVS rlog -7 log entries -creating changesets -5 changeset entries -sorting... -converting... -4 Initial revision -3 init -2 mod a -1 mod b -0 mod a again -updating tags -% Check the result -o 5 () update tags files: .hgtags -| -| o 4 (BRANCH) mod a again files: a -| | -| o 3 (BRANCH) mod b files: b -| | -| o 2 (BRANCH) mod a files: a -| | -| o 1 (v0) init files: -|/ -o 0 () Initial revision files: a b - - -% issue 1447 -cvs -f -Q co -d cvswork2 foo -cvs -f -Q add a.txt b.txt -cvs -f ci -m Initial commit -cvs -f ci -m Fix b on HEAD -cvs -f ci -m Small fix in a on HEAD -cvs -f -Q tag -b BRANCH -cvs -f -Q up -P -rBRANCH -cvs -f ci -m Change on BRANCH in b -collecting CVS rlog -5 log entries -creating changesets -4 changeset entries ---------------------- -PatchSet 1 -Date: -Author: -Branch: HEAD -Tag: (none) -Log: -Initial commit - -Members: - a.txt:INITIAL->1.1 - b.txt:INITIAL->1.1 - ---------------------- -PatchSet 2 -Date: -Author: -Branch: HEAD -Tag: (none) -Branchpoints: BRANCH -Parent: 1 -Log: -Fix b on HEAD - -Members: - b.txt:1.1->1.2 - ---------------------- -PatchSet 3 -Date: -Author: -Branch: HEAD -Tag: (none) -Branchpoints: BRANCH -Parent: 2 -Log: -Small fix in a on HEAD - -Members: - a.txt:1.1->1.2 - ---------------------- -PatchSet 4 -Date: -Author: -Branch: BRANCH -Tag: (none) -Parent: 3 -Log: -Change on BRANCH in b - -Members: - b.txt:1.2->1.2.2.1 - diff -r 99232aa664d6 -r 873ca83d6cfd tests/test-convert-cvs-branch.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-cvs-branch.t Sun Sep 26 15:33:09 2010 -0500 @@ -0,0 +1,190 @@ +This is http://mercurial.selenic.com/bts/issue1148 +and http://mercurial.selenic.com/bts/issue1447 + + $ "$TESTDIR/hghave" cvs || exit 80 + $ cvscall() + > { + > cvs -f "$@" > /dev/null + > } + $ echo "[extensions]" >> $HGRCPATH + $ echo "convert = " >> $HGRCPATH + $ echo "graphlog = " >> $HGRCPATH + $ echo "[convert]" >> $HGRCPATH + $ echo "cvsps.cache=0" >> $HGRCPATH + +create cvs repository + + $ mkdir cvsrepo + $ cd cvsrepo + $ CVSROOT=`pwd` + $ export CVSROOT + $ CVS_OPTIONS=-f + $ export CVS_OPTIONS + $ cd .. + $ cvscall -q -d "$CVSROOT" init + +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 + cvs checkout: Updating src + $ cd src + +Branch the project + + $ cvscall tag -b BRANCH + cvs tag: Tagging . + $ cvscall up -r BRANCH > /dev/null + cvs update: Updating . + +Modify file a, then b, then a + + $ echo "2" > a + $ cvscall ci -m "mod a" + cvs commit: Examining . + $ echo "2" > b + $ cvscall ci -m "mod b" + cvs commit: Examining . + $ echo "3" > a + $ cvscall ci -m "mod a again" + cvs commit: Examining . + +Convert + + $ cd .. + $ hg convert src + assuming destination src-hg + initializing destination src-hg repository + connecting to */cvsrepo (glob) + scanning source... + collecting CVS rlog + 7 log entries + creating changesets + 5 changeset entries + sorting... + converting... + 4 Initial revision + 3 init + 2 mod a + 1 mod b + 0 mod a again + updating tags + +Check the result + + $ hg -R src-hg glog --template '{rev} ({branches}) {desc} files: {files}\n' + o 5 () update tags files: .hgtags + | + | o 4 (BRANCH) mod a again files: a + | | + | o 3 (BRANCH) mod b files: b + | | + | o 2 (BRANCH) mod a files: a + | | + | o 1 (v0) init files: + |/ + o 0 () Initial revision files: a b + + + +issue 1447 + + $ cvscall() + > { + > cvs -f "$@" > /dev/null + > sleep 1 + > } + $ cvsci() + > { + > cvs -f ci "$@" >/dev/null + > sleep 1 + > } + $ cvscall -Q -d `pwd`/cvsmaster2 init + $ 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" + cvs commit: Examining . + $ echo foo > b.txt + $ cvsci -m "Fix b on HEAD" + cvs commit: Examining . + $ echo bar > a.txt + $ cvsci -m "Small fix in a on HEAD" + cvs commit: Examining . + $ cvscall -Q tag -b BRANCH + $ cvscall -Q up -P -rBRANCH + $ echo baz > b.txt + $ cvsci -m "Change on BRANCH in b" + cvs commit: Examining . + $ hg debugcvsps -x --parents foo + collecting CVS rlog + 5 log entries + creating changesets + 4 changeset entries + --------------------- + PatchSet 1 + Date: * (glob) + Author: * (glob) + Branch: HEAD + Tag: (none) + Log: + Initial commit + + Members: + a.txt:INITIAL->1.1 + b.txt:INITIAL->1.1 + + --------------------- + PatchSet 2 + Date: * (glob) + Author: * (glob) + Branch: HEAD + Tag: (none) + Branchpoints: BRANCH + Parent: 1 + Log: + Fix b on HEAD + + Members: + b.txt:1.1->1.2 + + --------------------- + PatchSet 3 + Date: * (glob) + Author: * (glob) + Branch: HEAD + Tag: (none) + Branchpoints: BRANCH + Parent: 2 + Log: + Small fix in a on HEAD + + Members: + a.txt:1.1->1.2 + + --------------------- + PatchSet 4 + Date: * (glob) + Author: * (glob) + Branch: BRANCH + Tag: (none) + Parent: 3 + Log: + Change on BRANCH in b + + Members: + b.txt:1.2->1.2.2.1 + +