annotate tests/test-convert-cvs-synthetic @ 8081:6c3b8132078e

issue1577: fix broken test by assuming less about CVS output. Specifically, output of "cvs ci" varies unpredictably across CVS versions, so any test that includes the output of "cvs ci" is doomed to fail some of the time. This fixes that by discarding the output of "cvs ci".
author Greg Ward <greg-hg@gerg.ca>
date Sat, 28 Mar 2009 12:24:53 -0400
parents 02981000012e
children 2c7c973c2abd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
1 #!/bin/sh
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
2
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
3 # This feature requires use of builtin cvsps!
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
4 "$TESTDIR/hghave" cvs || exit 80
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
5
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
6 set -e
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
7
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
8 echo "[extensions]" >> $HGRCPATH
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
9 echo "convert = " >> $HGRCPATH
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
10 echo "[convert]" >> $HGRCPATH
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
11 echo "cvsps=builtin" >> $HGRCPATH
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
12
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
13 echo % create cvs repository with one project
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
14 mkdir cvsrepo
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
15 cd cvsrepo
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
16 export CVSROOT=`pwd`
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
17 export CVS_OPTIONS=-f
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
18 cd ..
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
19
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
20 filterpath()
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
21 {
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
22 eval "$@" | sed "s:$CVSROOT:*REPO*:g"
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
23 }
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
24
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
25 cvscall()
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
26 {
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
27 echo cvs -f "$@"
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
28 cvs -f "$@" 2>&1
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
29 }
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
30
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
31 # output of 'cvs ci' varies unpredictably, so just discard it
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
32 cvsci()
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
33 {
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
34 echo cvs -f ci "$@"
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
35 cvs -f ci "$@" >/dev/null 2>&1
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
36 }
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
37
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
38 filterpath cvscall -d "$CVSROOT" init
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
39 mkdir cvsrepo/proj
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
40
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
41 cvscall -q co proj
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
42
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
43 echo % create file1 on the trunk
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
44 cd proj
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
45 touch file1
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
46 cvscall -Q add file1
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
47 cvsci -m"add file1 on trunk" file1
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
48
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
49 echo % create two branches
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
50 cvscall -q tag -b v1_0
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
51 cvscall -q tag -b v1_1
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
52
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
53 echo % create file2 on branch v1_0
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
54 cvscall -q up -rv1_0
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
55 touch file2
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
56 cvscall -Q add file2
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
57 cvsci -m"add file2 on branch v1_0" file2
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
58
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
59 echo % create file3, file4 on branch v1_1
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
60 cvscall -Q up -rv1_1
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
61 touch file3
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
62 touch file4
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
63 cvscall -Q add file3 file4
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
64 cvsci -m"add file3, file4 on branch v1_1" file3 file4
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
65
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
66 echo % merge file2 from v1_0 to v1_1
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
67 cvscall -q up -jv1_0
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
68 cvsci -m"merge file2 from v1_0 to v1_1"
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
69
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
70 echo % cvs rlog output
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
71 filterpath cvscall -q rlog proj | egrep '^(RCS file|revision)'
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
72
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
73 echo % convert to hg
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
74 cd ..
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
75 filterpath hg convert proj proj.hg
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
76
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
77 echo % hg log output
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
78 hg -R proj.hg log --template "{rev} {desc}\n"