comparison tests/test-narrow-widen.t @ 43241:cca3c1755224

tests: show graph log before and after widening in more cases I'm about to make some changes to which revisions get sent during widening. Some more tests will make it clearer what changes. I've also switched to graph log so we easily notice if the graph shape changes. Differential Revision: https://phab.mercurial-scm.org/D7091
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 11 Oct 2019 22:02:44 -0700
parents d7304434390f
children 5c2a4f37eace
comparison
equal deleted inserted replaced
43240:4353942be294 43241:cca3c1755224
1 #testcases flat tree 1 #testcases flat tree
2 $ . "$TESTDIR/narrow-library.sh" 2 $ . "$TESTDIR/narrow-library.sh"
3
4 $ cat >> $HGRCPATH <<EOF
5 > [alias]
6 > l = log -G -T "{if(ellipsis, '...')}{rev}: {desc}\n"
7 > EOF
3 8
4 #if tree 9 #if tree
5 $ cat << EOF >> $HGRCPATH 10 $ cat << EOF >> $HGRCPATH
6 > [experimental] 11 > [experimental]
7 > treemanifest = 1 12 > treemanifest = 1
74 $ hg commit -m 'add outside2' 79 $ hg commit -m 'add outside2'
75 80
76 $ echo 'widest v4' > widest/f 81 $ echo 'widest v4' > widest/f
77 $ hg commit -m 'update widest v4' 82 $ hg commit -m 'update widest v4'
78 83
79 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n" 84 $ hg l
80 7: update widest v4 85 @ 7: update widest v4
81 6: add outside2 86 |
82 5: update inside 87 o 6: add outside2
83 4: update widest v3 88 |
84 3: add wider, update widest 89 o 5: update inside
85 2: add outside 90 |
86 1: add widest 91 o 4: update widest v3
87 0: add inside 92 |
93 o 3: add wider, update widest
94 |
95 o 2: add outside
96 |
97 o 1: add widest
98 |
99 o 0: add inside
100
88 101
89 $ cd .. 102 $ cd ..
90 103
91 Widen the narrow spec to see the widest file. This should not get the newly 104 Widen the narrow spec to see the widest file. This should not get the newly
92 added upstream revisions. 105 added upstream revisions.
93 106
94 $ cd narrow 107 $ cd narrow
108 $ hg l
109 @ ...1: add outside
110 |
111 o 0: add inside
112
95 $ hg tracked --addinclude widest/f 113 $ hg tracked --addinclude widest/f
96 comparing with ssh://user@dummy/master 114 comparing with ssh://user@dummy/master
97 searching for changes 115 searching for changes
98 saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob) 116 saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)
99 adding changesets 117 adding changesets
100 adding manifests 118 adding manifests
101 adding file changes 119 adding file changes
102 added 3 changesets with 2 changes to 2 files 120 added 3 changesets with 2 changes to 2 files
121 $ hg l
122 @ ...2: add outside
123 |
124 o 1: add widest
125 |
126 o 0: add inside
127
103 $ hg tracked 128 $ hg tracked
104 I path:inside 129 I path:inside
105 I path:widest/f 130 I path:widest/f
106 131
107 $ cat widest/f 132 $ cat widest/f
128 $ cat widest/f 153 $ cat widest/f
129 widest v3 154 widest v3
130 $ cat inside/f 155 $ cat inside/f
131 inside v2 156 inside v2
132 157
133 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n" 158 $ hg l
134 7: update widest v4 159 o 7: update widest v4
135 ...6: add outside2 160 |
136 5: update inside 161 o ...6: add outside2
137 4: update widest v3 162 |
138 3: add wider, update widest 163 @ 5: update inside
139 ...2: add outside 164 |
140 1: add widest 165 o 4: update widest v3
141 0: add inside 166 |
167 o 3: add wider, update widest
168 |
169 o ...2: add outside
170 |
171 o 1: add widest
172 |
173 o 0: add inside
174
142 175
143 Check that widening with a newline fails 176 Check that widening with a newline fails
144 177
145 $ hg tracked --addinclude 'widest 178 $ hg tracked --addinclude 'widest
146 > ' 179 > '
178 $ hg update 'desc("update widest v4")' 211 $ hg update 'desc("update widest v4")'
179 2 files updated, 0 files merged, 0 files removed, 0 files unresolved 212 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
180 $ cat widest/f 213 $ cat widest/f
181 widest v4 214 widest v4
182 215
183 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n" 216 $ hg l
184 7: update widest v4 217 @ 7: update widest v4
185 ...6: add outside2 218 |
186 5: update inside 219 o ...6: add outside2
187 4: update widest v3 220 |
188 3: add wider, update widest 221 o 5: update inside
189 ...2: add outside 222 |
190 1: add widest 223 o 4: update widest v3
191 0: add inside 224 |
225 o 3: add wider, update widest
226 |
227 o ...2: add outside
228 |
229 o 1: add widest
230 |
231 o 0: add inside
232
192 233
193 separate suite of tests: files from 0-10 modified in changes 0-10. This allows 234 separate suite of tests: files from 0-10 modified in changes 0-10. This allows
194 more obvious precise tests tickling particular corner cases. 235 more obvious precise tests tickling particular corner cases.
195 236
196 $ cd .. 237 $ cd ..
243 checking manifests 284 checking manifests
244 checking directory manifests (tree !) 285 checking directory manifests (tree !)
245 crosschecking files in changesets and manifests 286 crosschecking files in changesets and manifests
246 checking files 287 checking files
247 checked 8 changesets with 4 changes to 4 files 288 checked 8 changesets with 4 changes to 4 files
248 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n" 289 $ hg l
249 ...7: add d10/f 290 @ ...7: add d10/f
250 6: add d9/f 291 |
251 ...5: add d8/f 292 o 6: add d9/f
252 4: add d6/f 293 |
253 ...3: add d5/f 294 o ...5: add d8/f
254 2: add d3/f 295 |
255 ...1: add d2/f 296 o 4: add d6/f
256 0: add d0/f 297 |
298 o ...3: add d5/f
299 |
300 o 2: add d3/f
301 |
302 o ...1: add d2/f
303 |
304 o 0: add d0/f
305
257 $ hg tracked --addinclude d1 306 $ hg tracked --addinclude d1
258 comparing with ssh://user@dummy/upstream 307 comparing with ssh://user@dummy/upstream
259 searching for changes 308 searching for changes
260 saved backup bundle to $TESTTMP/narrow2/.hg/strip-backup/*-widen.hg (glob) 309 saved backup bundle to $TESTTMP/narrow2/.hg/strip-backup/*-widen.hg (glob)
261 adding changesets 310 adding changesets
266 I path:d0 315 I path:d0
267 I path:d1 316 I path:d1
268 I path:d3 317 I path:d3
269 I path:d6 318 I path:d6
270 I path:d9 319 I path:d9
271 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n" 320 $ hg l
272 ...8: add d10/f 321 @ ...8: add d10/f
273 7: add d9/f 322 |
274 ...6: add d8/f 323 o 7: add d9/f
275 5: add d6/f 324 |
276 ...4: add d5/f 325 o ...6: add d8/f
277 3: add d3/f 326 |
278 ...2: add d2/f 327 o 5: add d6/f
279 1: add d1/f 328 |
280 0: add d0/f 329 o ...4: add d5/f
330 |
331 o 3: add d3/f
332 |
333 o ...2: add d2/f
334 |
335 o 1: add d1/f
336 |
337 o 0: add d0/f
338
281 339
282 Verify shouldn't claim the repo is corrupt after a widen. 340 Verify shouldn't claim the repo is corrupt after a widen.
283 341
284 $ hg verify 342 $ hg verify
285 checking changesets 343 checking changesets
292 Widening preserves parent of local commit 350 Widening preserves parent of local commit
293 351
294 $ cd .. 352 $ cd ..
295 $ hg clone -q --narrow ssh://user@dummy/upstream narrow3 --include d2 -r 2 353 $ hg clone -q --narrow ssh://user@dummy/upstream narrow3 --include d2 -r 2
296 $ cd narrow3 354 $ cd narrow3
297 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n" 355 $ hg l
298 1: add d2/f 356 @ 1: add d2/f
299 ...0: add d1/f 357 |
358 o ...0: add d1/f
359
300 $ hg pull -q -r 3 360 $ hg pull -q -r 3
301 $ hg co -q tip 361 $ hg co -q tip
302 $ hg pull -q -r 4 362 $ hg pull -q -r 4
303 $ echo local > d2/f 363 $ echo local > d2/f
304 $ hg ci -m local 364 $ hg ci -m local
305 created new head 365 created new head
366 $ hg l
367 @ 4: local
368 |
369 | o ...3: add d4/f
370 |/
371 o ...2: add d3/f
372 |
373 o 1: add d2/f
374 |
375 o ...0: add d1/f
376
306 $ hg tracked -q --addinclude d0 --addinclude d9 377 $ hg tracked -q --addinclude d0 --addinclude d9
378 $ hg l
379 @ 5: local
380 |
381 | o ...4: add d4/f
382 |/
383 o ...3: add d3/f
384 |
385 o 2: add d2/f
386 |
387 o ...1: add d1/f
388 |
389 o 0: add d0/f
390
307 391
308 Widening preserves bookmarks 392 Widening preserves bookmarks
309 393
310 $ cd .. 394 $ cd ..
311 $ hg clone -q --narrow ssh://user@dummy/upstream narrow-bookmarks --include d4 395 $ hg clone -q --narrow ssh://user@dummy/upstream narrow-bookmarks --include d4
326 $ cd .. 410 $ cd ..
327 $ hg clone -q --narrow ssh://user@dummy/upstream interrupted --include d0 411 $ hg clone -q --narrow ssh://user@dummy/upstream interrupted --include d0
328 $ cd interrupted 412 $ cd interrupted
329 $ echo local > d0/f 413 $ echo local > d0/f
330 $ hg ci -m local 414 $ hg ci -m local
331 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n" 415 $ hg l
332 2: local 416 @ 2: local
333 ...1: add d10/f 417 |
334 0: add d0/f 418 o ...1: add d10/f
419 |
420 o 0: add d0/f
421
335 $ hg bookmarks bookmark 422 $ hg bookmarks bookmark
336 $ hg --config hooks.pretxnchangegroup.bad=false tracked --addinclude d1 423 $ hg --config hooks.pretxnchangegroup.bad=false tracked --addinclude d1
337 comparing with ssh://user@dummy/upstream 424 comparing with ssh://user@dummy/upstream
338 searching for changes 425 searching for changes
339 saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/*-widen.hg (glob) 426 saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/*-widen.hg (glob)
342 adding file changes 429 adding file changes
343 transaction abort! 430 transaction abort!
344 rollback completed 431 rollback completed
345 abort: pretxnchangegroup.bad hook exited with status 1 432 abort: pretxnchangegroup.bad hook exited with status 1
346 [255] 433 [255]
347 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n" 434 $ hg l
348 $ hg bookmarks 435 $ hg bookmarks
349 no bookmarks set 436 no bookmarks set
350 $ hg unbundle .hg/strip-backup/*-widen.hg 437 $ hg unbundle .hg/strip-backup/*-widen.hg
351 adding changesets 438 adding changesets
352 adding manifests 439 adding manifests
353 adding file changes 440 adding file changes
354 added 3 changesets with 2 changes to 1 files 441 added 3 changesets with 2 changes to 1 files
355 new changesets *:* (glob) 442 new changesets *:* (glob)
356 (run 'hg update' to get a working copy) 443 (run 'hg update' to get a working copy)
357 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n" 444 $ hg l
358 2: local 445 o 2: local
359 ...1: add d10/f 446 |
360 0: add d0/f 447 o ...1: add d10/f
448 |
449 o 0: add d0/f
450
361 $ hg bookmarks 451 $ hg bookmarks
362 * bookmark 2:* (glob) 452 * bookmark 2:* (glob)