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 ..
-