Mercurial > hg
comparison 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 |
comparison
equal
deleted
inserted
replaced
8065:66d0a03d3afc | 8081:6c3b8132078e |
---|---|
1 #!/bin/sh | 1 #!/bin/sh |
2 | 2 |
3 # This feature requires use of builtin cvsps! | 3 # This feature requires use of builtin cvsps! |
4 "$TESTDIR/hghave" cvs || exit 80 | 4 "$TESTDIR/hghave" cvs || exit 80 |
5 | |
6 # XXX lots of duplication with other test-convert-cvs* scripts | |
7 | 5 |
8 set -e | 6 set -e |
9 | 7 |
10 echo "[extensions]" >> $HGRCPATH | 8 echo "[extensions]" >> $HGRCPATH |
11 echo "convert = " >> $HGRCPATH | 9 echo "convert = " >> $HGRCPATH |
17 cd cvsrepo | 15 cd cvsrepo |
18 export CVSROOT=`pwd` | 16 export CVSROOT=`pwd` |
19 export CVS_OPTIONS=-f | 17 export CVS_OPTIONS=-f |
20 cd .. | 18 cd .. |
21 | 19 |
22 filter='sed "s:$CVSROOT:*REPO*:g"' | 20 filterpath() |
21 { | |
22 eval "$@" | sed "s:$CVSROOT:*REPO*:g" | |
23 } | |
24 | |
23 cvscall() | 25 cvscall() |
24 { | 26 { |
25 cvs -f "$@" | eval $filter | 27 echo cvs -f "$@" |
28 cvs -f "$@" 2>&1 | |
26 } | 29 } |
27 | 30 |
28 cvscall -q -d "$CVSROOT" init | 31 # output of 'cvs ci' varies unpredictably, so just discard it |
32 cvsci() | |
33 { | |
34 echo cvs -f ci "$@" | |
35 cvs -f ci "$@" >/dev/null 2>&1 | |
36 } | |
37 | |
38 filterpath cvscall -d "$CVSROOT" init | |
29 mkdir cvsrepo/proj | 39 mkdir cvsrepo/proj |
30 | 40 |
31 cvscall co proj | 41 cvscall -q co proj |
32 | 42 |
33 echo % create file1 on the trunk | 43 echo % create file1 on the trunk |
34 cd proj | 44 cd proj |
35 touch file1 | 45 touch file1 |
36 cvscall add file1 | 46 cvscall -Q add file1 |
37 cvscall ci -m"add file1 on trunk" file1 | 47 cvsci -m"add file1 on trunk" file1 |
38 | 48 |
39 echo % create two branches | 49 echo % create two branches |
40 cvscall tag -b v1_0 | 50 cvscall -q tag -b v1_0 |
41 cvscall tag -b v1_1 | 51 cvscall -q tag -b v1_1 |
42 | 52 |
43 echo % create file2 on branch v1_0 | 53 echo % create file2 on branch v1_0 |
44 cvs up -rv1_0 | 54 cvscall -q up -rv1_0 |
45 touch file2 | 55 touch file2 |
46 cvscall add file2 | 56 cvscall -Q add file2 |
47 cvscall ci -m"add file2 on branch v1_0" file2 | 57 cvsci -m"add file2 on branch v1_0" file2 |
48 | 58 |
49 echo % create file3, file4 on branch v1_1 | 59 echo % create file3, file4 on branch v1_1 |
50 cvs up -rv1_1 | 60 cvscall -Q up -rv1_1 |
51 touch file3 | 61 touch file3 |
52 touch file4 | 62 touch file4 |
53 cvscall add file3 file4 | 63 cvscall -Q add file3 file4 |
54 cvscall ci -m"add file3, file4 on branch v1_1" file3 file4 | 64 cvsci -m"add file3, file4 on branch v1_1" file3 file4 |
55 | 65 |
56 echo % merge file2 from v1_0 to v1_1 | 66 echo % merge file2 from v1_0 to v1_1 |
57 cvscall up -jv1_0 | 67 cvscall -q up -jv1_0 |
58 cvscall ci -m"merge file2 from v1_0 to v1_1" | 68 cvsci -m"merge file2 from v1_0 to v1_1" |
69 | |
70 echo % cvs rlog output | |
71 filterpath cvscall -q rlog proj | egrep '^(RCS file|revision)' | |
59 | 72 |
60 echo % convert to hg | 73 echo % convert to hg |
61 cd .. | 74 cd .. |
62 hg convert proj proj.hg | eval $filter | 75 filterpath hg convert proj proj.hg |
63 | 76 |
64 echo % hg log output | 77 echo % hg log output |
65 hg -R proj.hg log --template "{rev} {desc}\n" | 78 hg -R proj.hg log --template "{rev} {desc}\n" |