annotate tests/test-convert-cvs-synthetic @ 9734:36c388a1aa51

commands: call ui.username carefully in debuginstall After c63c336ee2f7, 'hg debuginstall' would abort halfway through if no username was set. We now catch and display the exception instead.
author Martin Geisler <mg@lazybytes.net>
date Sat, 07 Nov 2009 01:46:27 +0100
parents 56a5f80556f5
children 6e4cf8319f54
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
8249
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
10 echo "graphlog = " >> $HGRCPATH
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
11
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
12 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
13 mkdir cvsrepo
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
14 cd cvsrepo
8350
1f0f01bc86a5 tests: avoid export FOO=bar bashism
Martin Geisler <mg@lazybytes.net>
parents: 8249
diff changeset
15 CVSROOT=`pwd`
1f0f01bc86a5 tests: avoid export FOO=bar bashism
Martin Geisler <mg@lazybytes.net>
parents: 8249
diff changeset
16 export CVSROOT
1f0f01bc86a5 tests: avoid export FOO=bar bashism
Martin Geisler <mg@lazybytes.net>
parents: 8249
diff changeset
17 CVS_OPTIONS=-f
1f0f01bc86a5 tests: avoid export FOO=bar bashism
Martin Geisler <mg@lazybytes.net>
parents: 8249
diff changeset
18 export CVS_OPTIONS
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
19 cd ..
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
20
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
21 filterpath()
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
22 {
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
23 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
24 }
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
25
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
26 cvscall()
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
27 {
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
28 echo cvs -f "$@"
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
29 cvs -f "$@" 2>&1
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
30 }
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
31
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
32 # 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
33 cvsci()
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
34 {
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
35 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
36 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
37 }
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
38
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
39 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
40 mkdir cvsrepo/proj
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
41
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
42 cvscall -q co proj
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
43
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
44 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
45 cd proj
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
46 touch file1
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
47 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
48 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
49
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
50 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
51 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
52 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
53
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
54 echo % create file2 on branch v1_0
8249
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
55 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
56 touch file2
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
57 cvscall -Q add file2
8249
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
58 cvsci -m"add file2" file2
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
59
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
60 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
61 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
62 touch file3
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
63 touch file4
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
64 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
65 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
66
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
67 echo % merge file2 from v1_0 to v1_1
8249
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
68 cvscall -Q up -jv1_0
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
69 cvsci -m"MERGE from v1_0: add file2"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
70
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
71 # Step things up a notch: now we make the history really hairy, with
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
72 # changes bouncing back and forth between trunk and v1_2 and merges
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
73 # going both ways. (I.e., try to model the real world.)
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
74
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
75 echo "% create branch v1_2"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
76 cvscall -Q up -A
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
77 cvscall -q tag -b v1_2
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
78
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
79 echo "% create file5 on branch v1_2"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
80 cvscall -Q up -rv1_2
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
81 touch file5
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
82 cvs -Q add file5
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
83 cvsci -m"add file5 on v1_2"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
84
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
85 echo "% create file6 on trunk post-v1_2"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
86 cvscall -Q up -A
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
87 touch file6
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
88 cvscall -Q add file6
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
89 cvsci -m"add file6 on trunk post-v1_2"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
90
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
91 echo "% merge file5 from v1_2 to trunk"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
92 cvscall -Q up -A
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
93 cvscall -Q up -jv1_2 file5
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
94 cvsci -m"MERGE from v1_2: add file5"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
95
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
96 echo "% merge file6 from trunk to v1_2"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
97 cvscall -Q up -rv1_2
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
98 cvscall up -jHEAD file6
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
99 cvsci -m"MERGE from HEAD: add file6"
8081
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
100
6c3b8132078e issue1577: fix broken test by assuming less about CVS output.
Greg Ward <greg-hg@gerg.ca>
parents: 7862
diff changeset
101 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
102 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
103
8249
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
104 echo "% convert to hg (#1)"
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
105 cd ..
8249
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
106 filterpath hg convert --datesort proj proj.hg
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
107
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
108 echo "% hg glog output (#1)"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
109 hg -R proj.hg glog --template "{rev} {desc}\n"
7862
02981000012e cvsps: recognize and eliminate CVS' synthetic "file added" revisions.
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
110
8249
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
111 echo "% convert to hg (#2: with merge detection)"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
112 filterpath hg convert \
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
113 --config convert.cvsps.mergefrom="\"^MERGE from (\S+):\"" \
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
114 --datesort \
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
115 proj proj.hg2
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
116
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
117 echo "% hg glog output (#2)"
2c7c973c2abd Reproduce crash where synthetic revs break merge detection (issue1578).
Greg Ward <greg-hg@gerg.ca>
parents: 8081
diff changeset
118 hg -R proj.hg2 glog --template "{rev} {desc}\n"