##// END OF EJS Templates
Reproduce crash where synthetic revs break merge detection (issue1578)....
Greg Ward -
r8249:2c7c973c default
parent child Browse files
Show More
@@ -7,6 +7,7 b' set -e'
7
7
8 echo "[extensions]" >> $HGRCPATH
8 echo "[extensions]" >> $HGRCPATH
9 echo "convert = " >> $HGRCPATH
9 echo "convert = " >> $HGRCPATH
10 echo "graphlog = " >> $HGRCPATH
10 echo "[convert]" >> $HGRCPATH
11 echo "[convert]" >> $HGRCPATH
11 echo "cvsps=builtin" >> $HGRCPATH
12 echo "cvsps=builtin" >> $HGRCPATH
12
13
@@ -51,10 +52,10 b' cvscall -q tag -b v1_0'
51 cvscall -q tag -b v1_1
52 cvscall -q tag -b v1_1
52
53
53 echo % create file2 on branch v1_0
54 echo % create file2 on branch v1_0
54 cvscall -q up -rv1_0
55 cvscall -Q up -rv1_0
55 touch file2
56 touch file2
56 cvscall -Q add file2
57 cvscall -Q add file2
57 cvsci -m"add file2 on branch v1_0" file2
58 cvsci -m"add file2" file2
58
59
59 echo % create file3, file4 on branch v1_1
60 echo % create file3, file4 on branch v1_1
60 cvscall -Q up -rv1_1
61 cvscall -Q up -rv1_1
@@ -64,15 +65,54 b' cvscall -Q add file3 file4'
64 cvsci -m"add file3, file4 on branch v1_1" file3 file4
65 cvsci -m"add file3, file4 on branch v1_1" file3 file4
65
66
66 echo % merge file2 from v1_0 to v1_1
67 echo % merge file2 from v1_0 to v1_1
67 cvscall -q up -jv1_0
68 cvscall -Q up -jv1_0
68 cvsci -m"merge file2 from v1_0 to v1_1"
69 cvsci -m"MERGE from v1_0: add file2"
70
71 # Step things up a notch: now we make the history really hairy, with
72 # changes bouncing back and forth between trunk and v1_2 and merges
73 # going both ways. (I.e., try to model the real world.)
74
75 echo "% create branch v1_2"
76 cvscall -Q up -A
77 cvscall -q tag -b v1_2
78
79 echo "% create file5 on branch v1_2"
80 cvscall -Q up -rv1_2
81 touch file5
82 cvs -Q add file5
83 cvsci -m"add file5 on v1_2"
84
85 echo "% create file6 on trunk post-v1_2"
86 cvscall -Q up -A
87 touch file6
88 cvscall -Q add file6
89 cvsci -m"add file6 on trunk post-v1_2"
90
91 echo "% merge file5 from v1_2 to trunk"
92 cvscall -Q up -A
93 cvscall -Q up -jv1_2 file5
94 cvsci -m"MERGE from v1_2: add file5"
95
96 echo "% merge file6 from trunk to v1_2"
97 cvscall -Q up -rv1_2
98 cvscall up -jHEAD file6
99 cvsci -m"MERGE from HEAD: add file6"
69
100
70 echo % cvs rlog output
101 echo % cvs rlog output
71 filterpath cvscall -q rlog proj | egrep '^(RCS file|revision)'
102 filterpath cvscall -q rlog proj | egrep '^(RCS file|revision)'
72
103
73 echo % convert to hg
104 echo "% convert to hg (#1)"
74 cd ..
105 cd ..
75 filterpath hg convert proj proj.hg
106 filterpath hg convert --datesort proj proj.hg
107
108 echo "% hg glog output (#1)"
109 hg -R proj.hg glog --template "{rev} {desc}\n"
76
110
77 echo % hg log output
111 echo "% convert to hg (#2: with merge detection)"
78 hg -R proj.hg log --template "{rev} {desc}\n"
112 filterpath hg convert \
113 --config convert.cvsps.mergefrom="\"^MERGE from (\S+):\"" \
114 --datesort \
115 proj proj.hg2
116
117 echo "% hg glog output (#2)"
118 hg -R proj.hg2 glog --template "{rev} {desc}\n"
@@ -10,17 +10,36 b' T file1'
10 cvs -f -q tag -b v1_1
10 cvs -f -q tag -b v1_1
11 T file1
11 T file1
12 % create file2 on branch v1_0
12 % create file2 on branch v1_0
13 cvs -f -q up -rv1_0
13 cvs -f -Q up -rv1_0
14 cvs -f -Q add file2
14 cvs -f -Q add file2
15 cvs -f ci -madd file2 on branch v1_0 file2
15 cvs -f ci -madd file2 file2
16 % create file3, file4 on branch v1_1
16 % create file3, file4 on branch v1_1
17 cvs -f -Q up -rv1_1
17 cvs -f -Q up -rv1_1
18 cvs -f -Q add file3 file4
18 cvs -f -Q add file3 file4
19 cvs -f ci -madd file3, file4 on branch v1_1 file3 file4
19 cvs -f ci -madd file3, file4 on branch v1_1 file3 file4
20 % merge file2 from v1_0 to v1_1
20 % merge file2 from v1_0 to v1_1
21 cvs -f -q up -jv1_0
21 cvs -f -Q up -jv1_0
22 U file2
22 cvs -f ci -mMERGE from v1_0: add file2
23 cvs -f ci -mmerge file2 from v1_0 to v1_1
23 % create branch v1_2
24 cvs -f -Q up -A
25 cvs -f -q tag -b v1_2
26 T file1
27 % create file5 on branch v1_2
28 cvs -f -Q up -rv1_2
29 cvs -f ci -madd file5 on v1_2
30 % create file6 on trunk post-v1_2
31 cvs -f -Q up -A
32 cvs -f -Q add file6
33 cvs -f ci -madd file6 on trunk post-v1_2
34 % merge file5 from v1_2 to trunk
35 cvs -f -Q up -A
36 cvs -f -Q up -jv1_2 file5
37 cvs -f ci -mMERGE from v1_2: add file5
38 % merge file6 from trunk to v1_2
39 cvs -f -Q up -rv1_2
40 cvs -f up -jHEAD file6
41 U file6
42 cvs -f ci -mMERGE from HEAD: add file6
24 % cvs rlog output
43 % cvs rlog output
25 RCS file: *REPO*/proj/file1,v
44 RCS file: *REPO*/proj/file1,v
26 revision 1.1
45 revision 1.1
@@ -35,23 +54,83 b' revision 1.1.2.1'
35 RCS file: *REPO*/proj/Attic/file4,v
54 RCS file: *REPO*/proj/Attic/file4,v
36 revision 1.1
55 revision 1.1
37 revision 1.1.2.1
56 revision 1.1.2.1
38 % convert to hg
57 RCS file: *REPO*/proj/file5,v
58 revision 1.2
59 revision 1.1
60 revision 1.1.2.1
61 RCS file: *REPO*/proj/file6,v
62 revision 1.1
63 revision 1.1.2.2
64 revision 1.1.2.1
65 % convert to hg (#1)
39 initializing destination proj.hg repository
66 initializing destination proj.hg repository
40 connecting to *REPO*
67 connecting to *REPO*
41 scanning source...
68 scanning source...
42 using builtin cvsps
69 using builtin cvsps
43 collecting CVS rlog
70 collecting CVS rlog
44 9 log entries
71 15 log entries
45 creating changesets
72 creating changesets
46 4 changeset entries
73 8 changeset entries
47 sorting...
74 sorting...
48 converting...
75 converting...
49 3 add file1 on trunk
76 7 add file1 on trunk
50 2 add file2 on branch v1_0
77 6 add file2
51 1 add file3, file4 on branch v1_1
78 5 add file3, file4 on branch v1_1
52 0 merge file2 from v1_0 to v1_1
79 4 MERGE from v1_0: add file2
53 % hg log output
80 3 add file5 on v1_2
54 3 merge file2 from v1_0 to v1_1
81 2 add file6 on trunk post-v1_2
55 2 add file3, file4 on branch v1_1
82 1 MERGE from v1_2: add file5
56 1 add file2 on branch v1_0
83 0 MERGE from HEAD: add file6
57 0 add file1 on trunk
84 % hg glog output (#1)
85 o 7 MERGE from HEAD: add file6
86 |
87 | o 6 MERGE from v1_2: add file5
88 | |
89 | o 5 add file6 on trunk post-v1_2
90 | |
91 o | 4 add file5 on v1_2
92 |/
93 | o 3 MERGE from v1_0: add file2
94 | |
95 | o 2 add file3, file4 on branch v1_1
96 |/
97 | o 1 add file2
98 |/
99 o 0 add file1 on trunk
100
101 % convert to hg (#2: with merge detection)
102 initializing destination proj.hg2 repository
103 connecting to *REPO*
104 scanning source...
105 using builtin cvsps
106 collecting CVS rlog
107 15 log entries
108 creating changesets
109 8 changeset entries
110 sorting...
111 converting...
112 7 add file1 on trunk
113 6 add file2
114 5 add file3, file4 on branch v1_1
115 4 MERGE from v1_0: add file2
116 3 add file5 on v1_2
117 2 add file6 on trunk post-v1_2
118 1 MERGE from v1_2: add file5
119 0 MERGE from HEAD: add file6
120 % hg glog output (#2)
121 o 7 MERGE from HEAD: add file6
122 |\
123 | o 6 MERGE from v1_2: add file5
124 | |
125 | o 5 add file6 on trunk post-v1_2
126 | |
127 o | 4 add file5 on v1_2
128 |/
129 | o 3 MERGE from v1_0: add file2
130 | |\
131 +---o 2 add file3, file4 on branch v1_1
132 | |
133 | o 1 add file2
134 |/
135 o 0 add file1 on trunk
136
General Comments 0
You need to be logged in to leave comments. Login now