tests: unify test-convert-cvsnt-mergepoints
authorMatt Mackall <mpm@selenic.com>
Sun, 26 Sep 2010 16:43:48 -0500
changeset 12523 a164a9cff771
parent 12522 7813e6b44a0b
child 12524 8773cac3a455
tests: unify test-convert-cvsnt-mergepoints
tests/test-convert-cvsnt-mergepoints
tests/test-convert-cvsnt-mergepoints.out
tests/test-convert-cvsnt-mergepoints.t
--- a/tests/test-convert-cvsnt-mergepoints	Sun Sep 26 16:39:52 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-#!/bin/sh
-
-"$TESTDIR/hghave" cvs || exit 80
-
-filterpath()
-{
-    eval "$@" | sed "s:$CVSROOT:*REPO*:g"
-}
-
-cvscall()
-{
-    echo cvs -f "$@"
-    cvs -f "$@"
-}
-
-# output of 'cvs ci' varies unpredictably, so discard most of it
-# -- just keep the part that matters
-cvsci()
-{
-    echo cvs -f ci -f "$@"
-    cvs -f ci -f "$@" 2>&1 | egrep "^(new|initial) revision:"
-}
-
-hgcat()
-{
-    hg --cwd src-hg cat -r tip "$1"
-}
-
-echo "[extensions]" >> $HGRCPATH
-echo "convert = " >> $HGRCPATH
-echo "graphlog = " >> $HGRCPATH
-
-echo "% create cvs repository"
-mkdir cvsmaster
-cd cvsmaster
-CVSROOT=`pwd`
-export CVSROOT
-CVS_OPTIONS=-f
-export CVS_OPTIONS
-cd ..
-filterpath cvscall -Q -d "$CVSROOT" init
-
-echo "% checkout #1: add foo.txt"
-cvscall -Q checkout -d cvsworktmp .
-cd cvsworktmp
-mkdir foo
-cvscall -Q add foo
-cd foo
-echo foo > foo.txt
-cvscall -Q add foo.txt 
-cvsci -m "add foo.txt" foo.txt
- 
-cd ../..
-rm -rf cvsworktmp
-
-echo "% checkout #2: create MYBRANCH1 and modify foo.txt on it"
-cvscall -Q checkout -d cvswork foo
-
-cd cvswork
-
-cvscall -q rtag -b -R MYBRANCH1 foo
-cvscall -Q update -P -r MYBRANCH1
-echo bar > foo.txt
-cvsci -m "bar" foo.txt
-echo baz > foo.txt
-cvsci -m "baz" foo.txt
-
-echo "% create MYBRANCH1_2 and modify foo.txt some more"
-cvscall -q rtag -b -R -r MYBRANCH1 MYBRANCH1_2 foo
-cvscall -Q update -P -r MYBRANCH1_2
-
-echo bazzie > foo.txt
-cvsci -m "bazzie" foo.txt
-
-echo "% create MYBRANCH1_1 and modify foo.txt yet again"
-cvscall -q rtag -b -R MYBRANCH1_1 foo
-cvscall -Q update -P -r MYBRANCH1_1
-
-echo quux > foo.txt
-cvsci -m "quux" foo.txt
-
-echo "% merge MYBRANCH1 to MYBRANCH1_1"
-filterpath cvscall -Q update -P -jMYBRANCH1
-# carefully placed sleep to dodge cvs bug (optimization?) where it
-# sometimes ignores a "commit" command if it comes too fast (the -f
-# option in cvsci seems to work for all the other commits in this
-# script)
-sleep 1
-echo xyzzy > foo.txt
-cvsci -m "merge1+clobber" foo.txt
-
-echo "% return to trunk and merge MYBRANCH1_2"
-cvscall -Q update -P -A
-filterpath cvscall -Q update -P -jMYBRANCH1_2
-cvsci -m "merge2" foo.txt
-
-REALCVS=`which cvs`
-echo "for x in \$*; do if [ \"\$x\" = \"rlog\" ]; then echo \"RCS file: $CVSROOT/foo/foo.txt,v\"; cat $TESTDIR/test-convert-cvsnt-mergepoints.rlog; exit 0; fi; done; $REALCVS \$*" > ../cvs
-chmod +x ../cvs
-PATH=..:${PATH} hg debugcvsps --parents foo | sed -e 's/Author:.*/Author:/' -e 's/Date:.*/Date:/'
-
-cd ..
--- a/tests/test-convert-cvsnt-mergepoints.out	Sun Sep 26 16:39:52 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-% create cvs repository
-cvs -f -Q -d *REPO* init
-% checkout #1: add foo.txt
-cvs -f -Q checkout -d cvsworktmp .
-cvs -f -Q add foo
-cvs -f -Q add foo.txt
-cvs -f ci -f -m add foo.txt foo.txt
-initial revision: 1.1
-% checkout #2: create MYBRANCH1 and modify foo.txt on it
-cvs -f -Q checkout -d cvswork foo
-cvs -f -q rtag -b -R MYBRANCH1 foo
-cvs -f -Q update -P -r MYBRANCH1
-cvs -f ci -f -m bar foo.txt
-new revision: 1.1.2.1; previous revision: 1.1
-cvs -f ci -f -m baz foo.txt
-new revision: 1.1.2.2; previous revision: 1.1.2.1
-% create MYBRANCH1_2 and modify foo.txt some more
-cvs -f -q rtag -b -R -r MYBRANCH1 MYBRANCH1_2 foo
-cvs -f -Q update -P -r MYBRANCH1_2
-cvs -f ci -f -m bazzie foo.txt
-new revision: 1.1.2.2.2.1; previous revision: 1.1.2.2
-% create MYBRANCH1_1 and modify foo.txt yet again
-cvs -f -q rtag -b -R MYBRANCH1_1 foo
-cvs -f -Q update -P -r MYBRANCH1_1
-cvs -f ci -f -m quux foo.txt
-new revision: 1.1.4.1; previous revision: 1.1
-% merge MYBRANCH1 to MYBRANCH1_1
-rcsmerge: warning: conflicts during merge
-cvs -f -Q update -P -jMYBRANCH1
-RCS file: *REPO*/foo/foo.txt,v
-retrieving revision 1.1
-retrieving revision 1.1.2.2
-Merging differences between 1.1 and 1.1.2.2 into foo.txt
-cvs -f ci -f -m merge1+clobber foo.txt
-new revision: 1.1.4.2; previous revision: 1.1.4.1
-% return to trunk and merge MYBRANCH1_2
-cvs -f -Q update -P -A
-cvs -f -Q update -P -jMYBRANCH1_2
-RCS file: *REPO*/foo/foo.txt,v
-retrieving revision 1.1
-retrieving revision 1.1.2.2.2.1
-Merging differences between 1.1 and 1.1.2.2.2.1 into foo.txt
-cvs -f ci -f -m merge2 foo.txt
-new revision: 1.2; previous revision: 1.1
-collecting CVS rlog
-7 log entries
-creating changesets
-7 changeset entries
----------------------
-PatchSet 1 
-Date:
-Author:
-Branch: HEAD
-Tag: (none) 
-Branchpoints: MYBRANCH1_1, MYBRANCH1 
-Log:
-foo.txt
-
-Members: 
-	foo.txt:INITIAL->1.1 
-
----------------------
-PatchSet 2 
-Date:
-Author:
-Branch: MYBRANCH1
-Tag: (none) 
-Parent: 1
-Log:
-bar
-
-Members: 
-	foo.txt:1.1->1.1.2.1 
-
----------------------
-PatchSet 3 
-Date:
-Author:
-Branch: MYBRANCH1
-Tag: (none) 
-Branchpoints: MYBRANCH1_2 
-Parent: 2
-Log:
-baz
-
-Members: 
-	foo.txt:1.1.2.1->1.1.2.2 
-
----------------------
-PatchSet 4 
-Date:
-Author:
-Branch: MYBRANCH1_1
-Tag: (none) 
-Parent: 1
-Log:
-quux
-
-Members: 
-	foo.txt:1.1->1.1.4.1 
-
----------------------
-PatchSet 5 
-Date:
-Author:
-Branch: MYBRANCH1_2
-Tag: (none) 
-Parent: 3
-Log:
-bazzie
-
-Members: 
-	foo.txt:1.1.2.2->1.1.2.2.2.1 
-
----------------------
-PatchSet 6 
-Date:
-Author:
-Branch: HEAD
-Tag: (none) 
-Parents: 1,5
-Log:
-merge
-
-Members: 
-	foo.txt:1.1->1.2 
-
----------------------
-PatchSet 7 
-Date:
-Author:
-Branch: MYBRANCH1_1
-Tag: (none) 
-Parents: 4,3
-Log:
-merge
-
-Members: 
-	foo.txt:1.1.4.1->1.1.4.2 
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-convert-cvsnt-mergepoints.t	Sun Sep 26 16:43:48 2010 -0500
@@ -0,0 +1,202 @@
+
+  $ "$TESTDIR/hghave" cvs || exit 80
+  $ filterpath()
+  > {
+  >     eval "$@" | sed "s:$CVSROOT:*REPO*:g"
+  > }
+  $ cvscall()
+  > {
+  >     cvs -f "$@"
+  > }
+
+output of 'cvs ci' varies unpredictably, so discard most of it
+-- just keep the part that matters
+
+  $ cvsci()
+  > {
+  >     cvs -f ci -f "$@" > /dev/null
+  > }
+  $ hgcat()
+  > {
+  >     hg --cwd src-hg cat -r tip "$1"
+  > }
+  $ echo "[extensions]" >> $HGRCPATH
+  $ echo "convert = " >> $HGRCPATH
+  $ echo "graphlog = " >> $HGRCPATH
+
+create cvs repository
+
+  $ mkdir cvsmaster
+  $ cd cvsmaster
+  $ CVSROOT=`pwd`
+  $ export CVSROOT
+  $ CVS_OPTIONS=-f
+  $ export CVS_OPTIONS
+  $ cd ..
+  $ filterpath cvscall -Q -d "$CVSROOT" init
+
+checkout #1: add foo.txt
+
+  $ cvscall -Q checkout -d cvsworktmp .
+  $ cd cvsworktmp
+  $ mkdir foo
+  $ cvscall -Q add foo
+  $ cd foo
+  $ echo foo > foo.txt
+  $ cvscall -Q add foo.txt 
+  $ cvsci -m "add foo.txt" foo.txt
+  $ cd ../..
+  $ rm -rf cvsworktmp
+
+checkout #2: create MYBRANCH1 and modify foo.txt on it
+
+  $ cvscall -Q checkout -d cvswork foo
+  $ cd cvswork
+  $ cvscall -q rtag -b -R MYBRANCH1 foo
+  $ cvscall -Q update -P -r MYBRANCH1
+  $ echo bar > foo.txt
+  $ cvsci -m "bar" foo.txt
+  $ echo baz > foo.txt
+  $ cvsci -m "baz" foo.txt
+
+create MYBRANCH1_2 and modify foo.txt some more
+
+  $ cvscall -q rtag -b -R -r MYBRANCH1 MYBRANCH1_2 foo
+  $ cvscall -Q update -P -r MYBRANCH1_2
+  $ echo bazzie > foo.txt
+  $ cvsci -m "bazzie" foo.txt
+
+create MYBRANCH1_1 and modify foo.txt yet again
+
+  $ cvscall -q rtag -b -R MYBRANCH1_1 foo
+  $ cvscall -Q update -P -r MYBRANCH1_1
+  $ echo quux > foo.txt
+  $ cvsci -m "quux" foo.txt
+
+merge MYBRANCH1 to MYBRANCH1_1
+
+  $ filterpath cvscall -Q update -P -jMYBRANCH1
+  rcsmerge: warning: conflicts during merge
+  RCS file: *REPO*/foo/foo.txt,v
+  retrieving revision 1.1
+  retrieving revision 1.1.2.2
+  Merging differences between 1.1 and 1.1.2.2 into foo.txt
+
+carefully placed sleep to dodge cvs bug (optimization?) where it
+sometimes ignores a "commit" command if it comes too fast (the -f
+option in cvsci seems to work for all the other commits in this
+script)
+
+  $ sleep 1
+  $ echo xyzzy > foo.txt
+  $ cvsci -m "merge1+clobber" foo.txt
+
+return to trunk and merge MYBRANCH1_2
+
+  $ cvscall -Q update -P -A
+  $ filterpath cvscall -Q update -P -jMYBRANCH1_2
+  RCS file: *REPO*/foo/foo.txt,v
+  retrieving revision 1.1
+  retrieving revision 1.1.2.2.2.1
+  Merging differences between 1.1 and 1.1.2.2.2.1 into foo.txt
+  $ cvsci -m "merge2" foo.txt
+  $ REALCVS=`which cvs`
+  $ echo "for x in \$*; do if [ \"\$x\" = \"rlog\" ]; then echo \"RCS file: $CVSROOT/foo/foo.txt,v\"; cat $TESTDIR/test-convert-cvsnt-mergepoints.rlog; exit 0; fi; done; $REALCVS \$*" > ../cvs
+  $ chmod +x ../cvs
+  $ PATH=..:${PATH} hg debugcvsps --parents foo
+  collecting CVS rlog
+  7 log entries
+  creating changesets
+  7 changeset entries
+  ---------------------
+  PatchSet 1 
+  Date: * (glob)
+  Author: user
+  Branch: HEAD
+  Tag: (none) 
+  Branchpoints: MYBRANCH1_1, MYBRANCH1 
+  Log:
+  foo.txt
+  
+  Members: 
+  	foo.txt:INITIAL->1.1 
+  
+  ---------------------
+  PatchSet 2 
+  Date: * (glob)
+  Author: user
+  Branch: MYBRANCH1
+  Tag: (none) 
+  Parent: 1
+  Log:
+  bar
+  
+  Members: 
+  	foo.txt:1.1->1.1.2.1 
+  
+  ---------------------
+  PatchSet 3 
+  Date: * (glob)
+  Author: user
+  Branch: MYBRANCH1
+  Tag: (none) 
+  Branchpoints: MYBRANCH1_2 
+  Parent: 2
+  Log:
+  baz
+  
+  Members: 
+  	foo.txt:1.1.2.1->1.1.2.2 
+  
+  ---------------------
+  PatchSet 4 
+  Date: * (glob)
+  Author: user
+  Branch: MYBRANCH1_1
+  Tag: (none) 
+  Parent: 1
+  Log:
+  quux
+  
+  Members: 
+  	foo.txt:1.1->1.1.4.1 
+  
+  ---------------------
+  PatchSet 5 
+  Date: * (glob)
+  Author: user
+  Branch: MYBRANCH1_2
+  Tag: (none) 
+  Parent: 3
+  Log:
+  bazzie
+  
+  Members: 
+  	foo.txt:1.1.2.2->1.1.2.2.2.1 
+  
+  ---------------------
+  PatchSet 6 
+  Date: * (glob)
+  Author: user
+  Branch: HEAD
+  Tag: (none) 
+  Parents: 1,5
+  Log:
+  merge
+  
+  Members: 
+  	foo.txt:1.1->1.2 
+  
+  ---------------------
+  PatchSet 7 
+  Date: * (glob)
+  Author: user
+  Branch: MYBRANCH1_1
+  Tag: (none) 
+  Parents: 4,3
+  Log:
+  merge
+  
+  Members: 
+  	foo.txt:1.1.4.1->1.1.4.2 
+