Mercurial > hg > mercurial-crew
diff tests/test-convert-cvs-branch.t @ 12520:873ca83d6cfd
tests: unify test-convert-cvs-branch
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 26 Sep 2010 15:33:09 -0500 |
parents | tests/test-convert-cvs-branch@56a5f80556f5 |
children | 0ae639c75b8c |
line wrap: on
line diff
old mode 100755 new mode 100644 copy from tests/test-convert-cvs-branch copy to tests/test-convert-cvs-branch.t --- a/tests/test-convert-cvs-branch +++ b/tests/test-convert-cvs-branch.t @@ -1,112 +1,190 @@ -#!/bin/sh - -# This is http://mercurial.selenic.com/bts/issue1148 -# and http://mercurial.selenic.com/bts/issue1447 +This is http://mercurial.selenic.com/bts/issue1148 +and http://mercurial.selenic.com/bts/issue1447 -"$TESTDIR/hghave" cvs || exit 80 + $ "$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 -cvscall() -{ - cvs -f "$@" -} +create cvs repository -echo "[extensions]" >> $HGRCPATH -echo "convert = " >> $HGRCPATH -echo "graphlog = " >> $HGRCPATH -echo "[convert]" >> $HGRCPATH -echo "cvsps.cache=0" >> $HGRCPATH + $ mkdir cvsrepo + $ cd cvsrepo + $ CVSROOT=`pwd` + $ export CVSROOT + $ CVS_OPTIONS=-f + $ export CVS_OPTIONS + $ cd .. + $ cvscall -q -d "$CVSROOT" init + +Create a new project -echo % create cvs repository -mkdir cvsrepo -cd cvsrepo -CVSROOT=`pwd` -export CVSROOT -CVS_OPTIONS=-f -export CVS_OPTIONS -cd .. + $ 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 -cvscall -q -d "$CVSROOT" init - -echo % Create a new project + $ 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 . -mkdir src -cd src -echo "1" > a -echo "1" > b -cvscall import -m "init" src v0 r0 | sort -cd .. -cvscall co src -cd src +Convert -echo % Branch the project - -cvscall tag -b BRANCH -cvscall up -r BRANCH > /dev/null - -echo % Modify file a, then b, then a + $ 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 -echo "2" > a -cvscall ci -m "mod a" | grep '<--' | sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g' +Check the result -echo "2" > b -cvscall ci -m "mod b" | grep '<--' | sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g' + $ 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 + -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 -} +issue 1447 -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" + $ 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 + -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 .. -