Mercurial > hg
comparison tests/test-convert-cvs-synthetic.t @ 12522:7813e6b44a0b
tests: unify test-convert-cvs-synthetic
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 26 Sep 2010 16:39:52 -0500 |
parents | tests/test-convert-cvs-synthetic@6e4cf8319f54 |
children | 6cc4b14fb76b |
comparison
equal
deleted
inserted
replaced
12521:539480ce1c89 | 12522:7813e6b44a0b |
---|---|
1 This feature requires use of builtin cvsps! | |
2 | |
3 $ "$TESTDIR/hghave" cvs || exit 80 | |
4 $ echo "[extensions]" >> $HGRCPATH | |
5 $ echo "convert = " >> $HGRCPATH | |
6 $ echo "graphlog = " >> $HGRCPATH | |
7 | |
8 create cvs repository with one project | |
9 | |
10 $ mkdir cvsrepo | |
11 $ cd cvsrepo | |
12 $ CVSROOT=`pwd` | |
13 $ export CVSROOT | |
14 $ CVS_OPTIONS=-f | |
15 $ export CVS_OPTIONS | |
16 $ cd .. | |
17 $ cvscall() | |
18 > { | |
19 > cvs -f "$@" | |
20 > } | |
21 | |
22 output of 'cvs ci' varies unpredictably, so just discard it | |
23 | |
24 $ cvsci() | |
25 > { | |
26 > cvs -f ci "$@" >/dev/null | |
27 > } | |
28 $ cvscall -d "$CVSROOT" init | |
29 $ mkdir cvsrepo/proj | |
30 $ cvscall -q co proj | |
31 | |
32 create file1 on the trunk | |
33 | |
34 $ cd proj | |
35 $ touch file1 | |
36 $ cvscall -Q add file1 | |
37 $ cvsci -m"add file1 on trunk" file1 | |
38 | |
39 create two branches | |
40 | |
41 $ cvscall -q tag -b v1_0 | |
42 T file1 | |
43 $ cvscall -q tag -b v1_1 | |
44 T file1 | |
45 | |
46 create file2 on branch v1_0 | |
47 | |
48 $ cvscall -Q up -rv1_0 | |
49 $ touch file2 | |
50 $ cvscall -Q add file2 | |
51 $ cvsci -m"add file2" file2 | |
52 | |
53 create file3, file4 on branch v1_1 | |
54 | |
55 $ cvscall -Q up -rv1_1 | |
56 $ touch file3 | |
57 $ touch file4 | |
58 $ cvscall -Q add file3 file4 | |
59 $ cvsci -m"add file3, file4 on branch v1_1" file3 file4 | |
60 | |
61 merge file2 from v1_0 to v1_1 | |
62 | |
63 $ cvscall -Q up -jv1_0 | |
64 $ cvsci -m"MERGE from v1_0: add file2" | |
65 cvs commit: Examining . | |
66 | |
67 Step things up a notch: now we make the history really hairy, with | |
68 changes bouncing back and forth between trunk and v1_2 and merges | |
69 going both ways. (I.e., try to model the real world.) | |
70 create branch v1_2 | |
71 | |
72 $ cvscall -Q up -A | |
73 $ cvscall -q tag -b v1_2 | |
74 T file1 | |
75 | |
76 create file5 on branch v1_2 | |
77 | |
78 $ cvscall -Q up -rv1_2 | |
79 $ touch file5 | |
80 $ cvs -Q add file5 | |
81 $ cvsci -m"add file5 on v1_2" | |
82 cvs commit: Examining . | |
83 | |
84 create file6 on trunk post-v1_2 | |
85 | |
86 $ cvscall -Q up -A | |
87 $ touch file6 | |
88 $ cvscall -Q add file6 | |
89 $ cvsci -m"add file6 on trunk post-v1_2" | |
90 cvs commit: Examining . | |
91 | |
92 merge file5 from v1_2 to trunk | |
93 | |
94 $ cvscall -Q up -A | |
95 $ cvscall -Q up -jv1_2 file5 | |
96 $ cvsci -m"MERGE from v1_2: add file5" | |
97 cvs commit: Examining . | |
98 | |
99 merge file6 from trunk to v1_2 | |
100 | |
101 $ cvscall -Q up -rv1_2 | |
102 $ cvscall up -jHEAD file6 | |
103 U file6 | |
104 $ cvsci -m"MERGE from HEAD: add file6" | |
105 cvs commit: Examining . | |
106 | |
107 cvs rlog output | |
108 | |
109 $ cvscall -q rlog proj | egrep '^(RCS file|revision)' | |
110 RCS file: */cvsrepo/proj/file1,v (glob) | |
111 revision 1.1 | |
112 RCS file: */cvsrepo/proj/Attic/file2,v (glob) | |
113 revision 1.1 | |
114 revision 1.1.4.2 | |
115 revision 1.1.4.1 | |
116 revision 1.1.2.1 | |
117 RCS file: */cvsrepo/proj/Attic/file3,v (glob) | |
118 revision 1.1 | |
119 revision 1.1.2.1 | |
120 RCS file: */cvsrepo/proj/Attic/file4,v (glob) | |
121 revision 1.1 | |
122 revision 1.1.2.1 | |
123 RCS file: */cvsrepo/proj/file5,v (glob) | |
124 revision 1.2 | |
125 revision 1.1 | |
126 revision 1.1.2.1 | |
127 RCS file: */cvsrepo/proj/file6,v (glob) | |
128 revision 1.1 | |
129 revision 1.1.2.2 | |
130 revision 1.1.2.1 | |
131 | |
132 convert to hg (#1) | |
133 | |
134 $ cd .. | |
135 $ hg convert --datesort proj proj.hg | |
136 initializing destination proj.hg repository | |
137 connecting to */cvsrepo (glob) | |
138 scanning source... | |
139 collecting CVS rlog | |
140 15 log entries | |
141 creating changesets | |
142 8 changeset entries | |
143 sorting... | |
144 converting... | |
145 7 add file1 on trunk | |
146 6 add file2 | |
147 5 add file3, file4 on branch v1_1 | |
148 4 MERGE from v1_0: add file2 | |
149 3 add file5 on v1_2 | |
150 2 add file6 on trunk post-v1_2 | |
151 1 MERGE from v1_2: add file5 | |
152 0 MERGE from HEAD: add file6 | |
153 | |
154 hg glog output (#1) | |
155 | |
156 $ hg -R proj.hg glog --template "{rev} {desc}\n" | |
157 o 7 MERGE from HEAD: add file6 | |
158 | | |
159 | o 6 MERGE from v1_2: add file5 | |
160 | | | |
161 | o 5 add file6 on trunk post-v1_2 | |
162 | | | |
163 o | 4 add file5 on v1_2 | |
164 |/ | |
165 | o 3 MERGE from v1_0: add file2 | |
166 | | | |
167 | o 2 add file3, file4 on branch v1_1 | |
168 |/ | |
169 | o 1 add file2 | |
170 |/ | |
171 o 0 add file1 on trunk | |
172 | |
173 | |
174 convert to hg (#2: with merge detection) | |
175 | |
176 $ hg convert \ | |
177 > --config convert.cvsps.mergefrom='"^MERGE from (\S+):"' \ | |
178 > --datesort \ | |
179 > proj proj.hg2 | |
180 initializing destination proj.hg2 repository | |
181 connecting to */cvsrepo (glob) | |
182 scanning source... | |
183 collecting CVS rlog | |
184 15 log entries | |
185 creating changesets | |
186 8 changeset entries | |
187 sorting... | |
188 converting... | |
189 7 add file1 on trunk | |
190 6 add file2 | |
191 5 add file3, file4 on branch v1_1 | |
192 4 MERGE from v1_0: add file2 | |
193 3 add file5 on v1_2 | |
194 2 add file6 on trunk post-v1_2 | |
195 1 MERGE from v1_2: add file5 | |
196 0 MERGE from HEAD: add file6 | |
197 | |
198 hg glog output (#2) | |
199 | |
200 $ hg -R proj.hg2 glog --template "{rev} {desc}\n" | |
201 o 7 MERGE from HEAD: add file6 | |
202 | | |
203 | o 6 MERGE from v1_2: add file5 | |
204 | | | |
205 | o 5 add file6 on trunk post-v1_2 | |
206 | | | |
207 o | 4 add file5 on v1_2 | |
208 |/ | |
209 | o 3 MERGE from v1_0: add file2 | |
210 | | | |
211 | o 2 add file3, file4 on branch v1_1 | |
212 |/ | |
213 | o 1 add file2 | |
214 |/ | |
215 o 0 add file1 on trunk | |
216 |