##// END OF EJS Templates
tests: show that adding an already included path still calls narrow_widen()...
Pulkit Goyal -
r40461:d362a41e default
parent child Browse files
Show More
@@ -1,419 +1,430 b''
1 1 #testcases tree flat
2 2 $ . "$TESTDIR/narrow-library.sh"
3 3
4 4 #if tree
5 5 $ cat << EOF >> $HGRCPATH
6 6 > [experimental]
7 7 > treemanifest = 1
8 8 > EOF
9 9 #endif
10 10
11 11 $ hg init master
12 12 $ cd master
13 13
14 14 $ mkdir inside
15 15 $ echo 'inside' > inside/f
16 16 $ hg add inside/f
17 17 $ hg commit -m 'add inside'
18 18
19 19 $ mkdir widest
20 20 $ echo 'widest' > widest/f
21 21 $ hg add widest/f
22 22 $ hg commit -m 'add widest'
23 23
24 24 $ mkdir outside
25 25 $ echo 'outside' > outside/f
26 26 $ hg add outside/f
27 27 $ hg commit -m 'add outside'
28 28
29 29 $ cd ..
30 30
31 31 narrow clone the inside file
32 32
33 33 $ hg clone --narrow ssh://user@dummy/master narrow
34 34 requesting all changes
35 35 adding changesets
36 36 adding manifests
37 37 adding file changes
38 38 added 3 changesets with 0 changes to 0 files
39 39 new changesets *:* (glob)
40 40 updating to branch default
41 41 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
42 42 $ cd narrow
43 43 $ hg tracked
44 44 $ hg files
45 45 [1]
46 46
47 47 widen from an empty clone
48 48
49 49 $ hg tracked --addinclude inside
50 50 comparing with ssh://user@dummy/master
51 51 searching for changes
52 52 adding changesets
53 53 adding manifests
54 54 adding file changes
55 55 added 0 changesets with 1 changes to 1 files
56 56 $ hg tracked
57 57 I path:inside
58 58 $ ls
59 59 inside
60 60 $ cat inside/f
61 61 inside
62 62 $ cd ..
63 63
64 64 add more upstream files which we will include in a wider narrow spec
65 65
66 66 $ cd master
67 67
68 68 $ mkdir wider
69 69 $ echo 'wider' > wider/f
70 70 $ hg add wider/f
71 71 $ echo 'widest v2' > widest/f
72 72 $ hg commit -m 'add wider, update widest'
73 73
74 74 $ echo 'widest v3' > widest/f
75 75 $ hg commit -m 'update widest v3'
76 76
77 77 $ echo 'inside v2' > inside/f
78 78 $ hg commit -m 'update inside'
79 79
80 80 $ mkdir outside2
81 81 $ echo 'outside2' > outside2/f
82 82 $ hg add outside2/f
83 83 $ hg commit -m 'add outside2'
84 84
85 85 $ echo 'widest v4' > widest/f
86 86 $ hg commit -m 'update widest v4'
87 87
88 88 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
89 89 7: update widest v4
90 90 6: add outside2
91 91 5: update inside
92 92 4: update widest v3
93 93 3: add wider, update widest
94 94 2: add outside
95 95 1: add widest
96 96 0: add inside
97 97
98 98 $ cd ..
99 99
100 100 Widen the narrow spec to see the widest file. This should not get the newly
101 101 added upstream revisions.
102 102
103 103 $ cd narrow
104 104 $ hg id -n
105 105 2
106 106
107 107 $ hg tracked --addinclude widest/f --debug
108 108 comparing with ssh://user@dummy/master
109 109 running python "*dummyssh" *user@dummy* *hg -R master serve --stdio* (glob)
110 110 sending hello command
111 111 sending between command
112 112 remote: * (glob)
113 113 remote: capabilities: * (glob)
114 114 remote: 1
115 115 sending protocaps command
116 116 query 1; heads
117 117 sending batch command
118 118 searching for changes
119 119 all local heads known remotely
120 120 sending narrow_widen command
121 121 bundle2-input-bundle: with-transaction
122 122 bundle2-input-part: "changegroup" (params: * mandatory) supported (glob)
123 123 adding changesets
124 124 adding manifests
125 125 adding widest/ revisions (tree !)
126 126 adding file changes
127 127 adding widest/f revisions (tree !)
128 128 added 0 changesets with 1 changes to 1 files
129 129 bundle2-input-part: total payload size * (glob)
130 130 bundle2-input-bundle: 0 parts total
131 131 widest/f: add from widened narrow clone -> g
132 132 getting widest/f
133 133 $ hg tracked
134 134 I path:inside
135 135 I path:widest/f
136 136
137 137 $ cat widest/f
138 138 widest
139 139
140 140 $ hg id -n
141 141 2
142 142
143 Test that extending already included files should not call narrow_widen
144 wireprotocol command
145
146 $ hg tracked --addinclude widest/f
147 comparing with ssh://user@dummy/master
148 searching for changes
149 adding changesets
150 adding manifests
151 adding file changes
152 added 0 changesets with 0 changes to 0 files
153
143 154 Pull down the newly added upstream revision.
144 155
145 156 $ hg pull
146 157 pulling from ssh://user@dummy/master
147 158 searching for changes
148 159 adding changesets
149 160 adding manifests
150 161 adding file changes
151 162 added 5 changesets with 4 changes to 2 files
152 163 new changesets *:* (glob)
153 164 (run 'hg update' to get a working copy)
154 165 $ hg update -r 'desc("add wider")'
155 166 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
156 167
157 168 $ cat widest/f
158 169 widest v2
159 170
160 171 $ hg update -r 'desc("update inside")'
161 172 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
162 173 $ cat widest/f
163 174 widest v3
164 175 $ cat inside/f
165 176 inside v2
166 177
167 178 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
168 179 7: update widest v4
169 180 6: add outside2
170 181 5: update inside
171 182 4: update widest v3
172 183 3: add wider, update widest
173 184 2: add outside
174 185 1: add widest
175 186 0: add inside
176 187
177 188 Check that widening with a newline fails
178 189
179 190 $ hg tracked --addinclude 'widest
180 191 > '
181 192 abort: newlines are not allowed in narrowspec paths
182 193 [255]
183 194
184 195 widen the narrow spec to include the wider file
185 196
186 197 $ hg tracked --addinclude wider
187 198 comparing with ssh://user@dummy/master
188 199 searching for changes
189 200 adding changesets
190 201 adding manifests
191 202 adding file changes
192 203 added 0 changesets with 1 changes to 1 files
193 204 $ hg tracked
194 205 I path:inside
195 206 I path:wider
196 207 I path:widest/f
197 208 $ hg update 'desc("add widest")'
198 209 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
199 210 $ cat widest/f
200 211 widest
201 212 $ hg update 'desc("add wider, update widest")'
202 213 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
203 214 $ cat wider/f
204 215 wider
205 216 $ cat widest/f
206 217 widest v2
207 218 $ hg update 'desc("update widest v3")'
208 219 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
209 220 $ cat widest/f
210 221 widest v3
211 222 $ hg update 'desc("update widest v4")'
212 223 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
213 224 $ cat widest/f
214 225 widest v4
215 226
216 227 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
217 228 7: update widest v4
218 229 6: add outside2
219 230 5: update inside
220 231 4: update widest v3
221 232 3: add wider, update widest
222 233 2: add outside
223 234 1: add widest
224 235 0: add inside
225 236
226 237 separate suite of tests: files from 0-10 modified in changes 0-10. This allows
227 238 more obvious precise tests tickling particular corner cases.
228 239
229 240 $ cd ..
230 241 $ hg init upstream
231 242 $ cd upstream
232 243 $ for x in `$TESTDIR/seq.py 0 10`
233 244 > do
234 245 > mkdir d$x
235 246 > echo $x > d$x/f
236 247 > hg add d$x/f
237 248 > hg commit -m "add d$x/f"
238 249 > done
239 250 $ hg log -T "{rev}: {desc}\n"
240 251 10: add d10/f
241 252 9: add d9/f
242 253 8: add d8/f
243 254 7: add d7/f
244 255 6: add d6/f
245 256 5: add d5/f
246 257 4: add d4/f
247 258 3: add d3/f
248 259 2: add d2/f
249 260 1: add d1/f
250 261 0: add d0/f
251 262
252 263 make narrow clone with every third node.
253 264
254 265 $ cd ..
255 266 $ hg clone --narrow ssh://user@dummy/upstream narrow2 --include d0 --include d3 --include d6 --include d9
256 267 requesting all changes
257 268 adding changesets
258 269 adding manifests
259 270 adding file changes
260 271 added 11 changesets with 4 changes to 4 files
261 272 new changesets *:* (glob)
262 273 updating to branch default
263 274 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
264 275 $ cd narrow2
265 276 $ hg tracked
266 277 I path:d0
267 278 I path:d3
268 279 I path:d6
269 280 I path:d9
270 281 $ hg verify
271 282 checking changesets
272 283 checking manifests
273 284 checking directory manifests (tree !)
274 285 crosschecking files in changesets and manifests
275 286 checking files
276 287 checked 11 changesets with 4 changes to 4 files
277 288 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
278 289 10: add d10/f
279 290 9: add d9/f
280 291 8: add d8/f
281 292 7: add d7/f
282 293 6: add d6/f
283 294 5: add d5/f
284 295 4: add d4/f
285 296 3: add d3/f
286 297 2: add d2/f
287 298 1: add d1/f
288 299 0: add d0/f
289 300 $ hg tracked --addinclude d1
290 301 comparing with ssh://user@dummy/upstream
291 302 searching for changes
292 303 adding changesets
293 304 adding manifests
294 305 adding file changes
295 306 added 0 changesets with 1 changes to 1 files
296 307 $ hg tracked
297 308 I path:d0
298 309 I path:d1
299 310 I path:d3
300 311 I path:d6
301 312 I path:d9
302 313 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
303 314 10: add d10/f
304 315 9: add d9/f
305 316 8: add d8/f
306 317 7: add d7/f
307 318 6: add d6/f
308 319 5: add d5/f
309 320 4: add d4/f
310 321 3: add d3/f
311 322 2: add d2/f
312 323 1: add d1/f
313 324 0: add d0/f
314 325
315 326 Verify shouldn't claim the repo is corrupt after a widen.
316 327
317 328 $ hg verify
318 329 checking changesets
319 330 checking manifests
320 331 checking directory manifests (tree !)
321 332 crosschecking files in changesets and manifests
322 333 checking files
323 334 checked 11 changesets with 5 changes to 5 files
324 335
325 336 Widening preserves parent of local commit
326 337
327 338 $ cd ..
328 339 $ hg clone -q --narrow ssh://user@dummy/upstream narrow3 --include d2 -r 2
329 340 $ cd narrow3
330 341 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
331 342 2: add d2/f
332 343 1: add d1/f
333 344 0: add d0/f
334 345 $ hg pull -q -r 3
335 346 $ hg co -q tip
336 347 $ hg pull -q -r 4
337 348 $ echo local > d2/f
338 349 $ hg ci -m local
339 350 created new head
340 351 $ hg tracked -q --addinclude d0 --addinclude d9
341 352
342 353 Widening preserves bookmarks
343 354
344 355 $ cd ..
345 356 $ hg clone -q --narrow ssh://user@dummy/upstream narrow-bookmarks --include d4
346 357 $ cd narrow-bookmarks
347 358 $ echo local > d4/f
348 359 $ hg ci -m local
349 360 $ hg bookmarks bookmark
350 361 $ hg bookmarks
351 362 * bookmark 11:* (glob)
352 363 $ hg -q tracked --addinclude d2
353 364 $ hg bookmarks
354 365 * bookmark 11:* (glob)
355 366 $ hg log -r bookmark -T '{desc}\n'
356 367 local
357 368
358 369 Widening that fails can be recovered from
359 370
360 371 $ cd ..
361 372 $ hg clone -q --narrow ssh://user@dummy/upstream interrupted --include d0
362 373 $ cd interrupted
363 374 $ echo local > d0/f
364 375 $ hg ci -m local
365 376 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
366 377 11: local
367 378 10: add d10/f
368 379 9: add d9/f
369 380 8: add d8/f
370 381 7: add d7/f
371 382 6: add d6/f
372 383 5: add d5/f
373 384 4: add d4/f
374 385 3: add d3/f
375 386 2: add d2/f
376 387 1: add d1/f
377 388 0: add d0/f
378 389 $ hg bookmarks bookmark
379 390 $ hg --config hooks.pretxnchangegroup.bad=false tracked --addinclude d1
380 391 comparing with ssh://user@dummy/upstream
381 392 searching for changes
382 393 adding changesets
383 394 adding manifests
384 395 adding file changes
385 396 added 0 changesets with 1 changes to 1 files
386 397 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
387 398 11: local
388 399 10: add d10/f
389 400 9: add d9/f
390 401 8: add d8/f
391 402 7: add d7/f
392 403 6: add d6/f
393 404 5: add d5/f
394 405 4: add d4/f
395 406 3: add d3/f
396 407 2: add d2/f
397 408 1: add d1/f
398 409 0: add d0/f
399 410 $ hg bookmarks
400 411 * bookmark 11:* (glob)
401 412 $ hg unbundle .hg/strip-backup/*-widen.hg
402 413 abort: .hg/strip-backup/*-widen.hg: $ENOTDIR$ (windows !)
403 414 abort: $ENOENT$: .hg/strip-backup/*-widen.hg (no-windows !)
404 415 [255]
405 416 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
406 417 11: local
407 418 10: add d10/f
408 419 9: add d9/f
409 420 8: add d8/f
410 421 7: add d7/f
411 422 6: add d6/f
412 423 5: add d5/f
413 424 4: add d4/f
414 425 3: add d3/f
415 426 2: add d2/f
416 427 1: add d1/f
417 428 0: add d0/f
418 429 $ hg bookmarks
419 430 * bookmark 11:* (glob)
General Comments 0
You need to be logged in to leave comments. Login now