##// END OF EJS Templates
tests: use {rev} instead of {node|short} and (glob) in narrow tests...
Martin von Zweigbergk -
r39397:5ebfb7cc default
parent child Browse files
Show More
@@ -1,384 +1,384
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 --include inside
34 34 requesting all changes
35 35 adding changesets
36 36 adding manifests
37 37 adding file changes
38 38 added 3 changesets with 1 changes to 1 files
39 39 new changesets *:* (glob)
40 40 updating to branch default
41 41 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
42 42 $ cd narrow
43 43 $ hg tracked
44 44 I path:inside
45 45 $ ls
46 46 inside
47 47 $ cat inside/f
48 48 inside
49 49 $ cd ..
50 50
51 51 add more upstream files which we will include in a wider narrow spec
52 52
53 53 $ cd master
54 54
55 55 $ mkdir wider
56 56 $ echo 'wider' > wider/f
57 57 $ hg add wider/f
58 58 $ echo 'widest v2' > widest/f
59 59 $ hg commit -m 'add wider, update widest'
60 60
61 61 $ echo 'widest v3' > widest/f
62 62 $ hg commit -m 'update widest v3'
63 63
64 64 $ echo 'inside v2' > inside/f
65 65 $ hg commit -m 'update inside'
66 66
67 67 $ mkdir outside2
68 68 $ echo 'outside2' > outside2/f
69 69 $ hg add outside2/f
70 70 $ hg commit -m 'add outside2'
71 71
72 72 $ echo 'widest v4' > widest/f
73 73 $ hg commit -m 'update widest v4'
74 74
75 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
76 *: update widest v4 (glob)
77 *: add outside2 (glob)
78 *: update inside (glob)
79 *: update widest v3 (glob)
80 *: add wider, update widest (glob)
81 *: add outside (glob)
82 *: add widest (glob)
83 *: add inside (glob)
75 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
76 7: update widest v4
77 6: add outside2
78 5: update inside
79 4: update widest v3
80 3: add wider, update widest
81 2: add outside
82 1: add widest
83 0: add inside
84 84
85 85 $ cd ..
86 86
87 87 Widen the narrow spec to see the wider file. This should not get the newly
88 88 added upstream revisions.
89 89
90 90 $ cd narrow
91 91 $ hg tracked --addinclude wider/f
92 92 comparing with ssh://user@dummy/master
93 93 searching for changes
94 94 no changes found
95 95 adding changesets
96 96 adding manifests
97 97 adding file changes
98 98 added 0 changesets with 0 changes to 1 files
99 99 3 local changesets published
100 100 $ hg tracked
101 101 I path:inside
102 102 I path:wider/f
103 103
104 104 Pull down the newly added upstream revision.
105 105
106 106 $ hg pull
107 107 pulling from ssh://user@dummy/master
108 108 searching for changes
109 109 adding changesets
110 110 adding manifests
111 111 adding file changes
112 112 added 5 changesets with 2 changes to 2 files
113 113 new changesets *:* (glob)
114 114 (run 'hg update' to get a working copy)
115 115 $ hg update -r 'desc("add wider")'
116 116 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
117 117 $ cat wider/f
118 118 wider
119 119
120 120 $ hg update -r 'desc("update inside")'
121 121 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
122 122 $ cat wider/f
123 123 wider
124 124 $ cat inside/f
125 125 inside v2
126 126
127 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
128 *: update widest v4 (glob)
129 *: add outside2 (glob)
130 *: update inside (glob)
131 *: update widest v3 (glob)
132 *: add wider, update widest (glob)
133 *: add outside (glob)
134 *: add widest (glob)
135 *: add inside (glob)
127 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
128 7: update widest v4
129 6: add outside2
130 5: update inside
131 4: update widest v3
132 3: add wider, update widest
133 2: add outside
134 1: add widest
135 0: add inside
136 136
137 137 Check that widening with a newline fails
138 138
139 139 $ hg tracked --addinclude 'widest
140 140 > '
141 141 abort: newlines are not allowed in narrowspec paths
142 142 [255]
143 143
144 144 widen the narrow spec to include the widest file
145 145
146 146 $ hg tracked --addinclude widest
147 147 comparing with ssh://user@dummy/master
148 148 searching for changes
149 149 no changes found
150 150 adding changesets
151 151 adding manifests
152 152 adding file changes
153 153 added 0 changesets with 4 changes to 3 files
154 154 5 local changesets published
155 155 $ hg tracked
156 156 I path:inside
157 157 I path:wider/f
158 158 I path:widest
159 159 $ hg update 'desc("add widest")'
160 160 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
161 161 $ cat widest/f
162 162 widest
163 163 $ hg update 'desc("add wider, update widest")'
164 164 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
165 165 $ cat wider/f
166 166 wider
167 167 $ cat widest/f
168 168 widest v2
169 169 $ hg update 'desc("update widest v3")'
170 170 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
171 171 $ cat widest/f
172 172 widest v3
173 173 $ hg update 'desc("update widest v4")'
174 174 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
175 175 $ cat widest/f
176 176 widest v4
177 177
178 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
179 *: update widest v4 (glob)
180 *: add outside2 (glob)
181 *: update inside (glob)
182 *: update widest v3 (glob)
183 *: add wider, update widest (glob)
184 *: add outside (glob)
185 *: add widest (glob)
186 *: add inside (glob)
178 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
179 7: update widest v4
180 6: add outside2
181 5: update inside
182 4: update widest v3
183 3: add wider, update widest
184 2: add outside
185 1: add widest
186 0: add inside
187 187
188 188 separate suite of tests: files from 0-10 modified in changes 0-10. This allows
189 189 more obvious precise tests tickling particular corner cases.
190 190
191 191 $ cd ..
192 192 $ hg init upstream
193 193 $ cd upstream
194 194 $ for x in `$TESTDIR/seq.py 0 10`
195 195 > do
196 196 > mkdir d$x
197 197 > echo $x > d$x/f
198 198 > hg add d$x/f
199 199 > hg commit -m "add d$x/f"
200 200 > done
201 $ hg log -T "{node|short}: {desc}\n"
202 *: add d10/f (glob)
203 *: add d9/f (glob)
204 *: add d8/f (glob)
205 *: add d7/f (glob)
206 *: add d6/f (glob)
207 *: add d5/f (glob)
208 *: add d4/f (glob)
209 *: add d3/f (glob)
210 *: add d2/f (glob)
211 *: add d1/f (glob)
212 *: add d0/f (glob)
201 $ hg log -T "{rev}: {desc}\n"
202 10: add d10/f
203 9: add d9/f
204 8: add d8/f
205 7: add d7/f
206 6: add d6/f
207 5: add d5/f
208 4: add d4/f
209 3: add d3/f
210 2: add d2/f
211 1: add d1/f
212 0: add d0/f
213 213
214 214 make narrow clone with every third node.
215 215
216 216 $ cd ..
217 217 $ hg clone --narrow ssh://user@dummy/upstream narrow2 --include d0 --include d3 --include d6 --include d9
218 218 requesting all changes
219 219 adding changesets
220 220 adding manifests
221 221 adding file changes
222 222 added 11 changesets with 4 changes to 4 files
223 223 new changesets *:* (glob)
224 224 updating to branch default
225 225 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
226 226 $ cd narrow2
227 227 $ hg tracked
228 228 I path:d0
229 229 I path:d3
230 230 I path:d6
231 231 I path:d9
232 232 $ hg verify
233 233 checking changesets
234 234 checking manifests
235 235 checking directory manifests (tree !)
236 236 crosschecking files in changesets and manifests
237 237 checking files
238 238 4 files, 11 changesets, 4 total revisions
239 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
240 *: add d10/f (glob)
241 *: add d9/f (glob)
242 *: add d8/f (glob)
243 *: add d7/f (glob)
244 *: add d6/f (glob)
245 *: add d5/f (glob)
246 *: add d4/f (glob)
247 *: add d3/f (glob)
248 *: add d2/f (glob)
249 *: add d1/f (glob)
250 *: add d0/f (glob)
239 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
240 10: add d10/f
241 9: add d9/f
242 8: add d8/f
243 7: add d7/f
244 6: add d6/f
245 5: add d5/f
246 4: add d4/f
247 3: add d3/f
248 2: add d2/f
249 1: add d1/f
250 0: add d0/f
251 251 $ hg tracked --addinclude d1
252 252 comparing with ssh://user@dummy/upstream
253 253 searching for changes
254 254 no changes found
255 255 adding changesets
256 256 adding manifests
257 257 adding file changes
258 258 added 0 changesets with 1 changes to 5 files
259 259 11 local changesets published
260 260 $ hg tracked
261 261 I path:d0
262 262 I path:d1
263 263 I path:d3
264 264 I path:d6
265 265 I path:d9
266 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
267 *: add d10/f (glob)
268 *: add d9/f (glob)
269 *: add d8/f (glob)
270 *: add d7/f (glob)
271 *: add d6/f (glob)
272 *: add d5/f (glob)
273 *: add d4/f (glob)
274 *: add d3/f (glob)
275 *: add d2/f (glob)
276 *: add d1/f (glob)
277 *: add d0/f (glob)
266 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
267 10: add d10/f
268 9: add d9/f
269 8: add d8/f
270 7: add d7/f
271 6: add d6/f
272 5: add d5/f
273 4: add d4/f
274 3: add d3/f
275 2: add d2/f
276 1: add d1/f
277 0: add d0/f
278 278
279 279 Verify shouldn't claim the repo is corrupt after a widen.
280 280
281 281 $ hg verify
282 282 checking changesets
283 283 checking manifests
284 284 checking directory manifests (tree !)
285 285 crosschecking files in changesets and manifests
286 286 checking files
287 287 5 files, 11 changesets, 5 total revisions
288 288
289 289 Widening preserves parent of local commit
290 290
291 291 $ cd ..
292 292 $ hg clone -q --narrow ssh://user@dummy/upstream narrow3 --include d2 -r 2
293 293 $ cd narrow3
294 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
295 *: add d2/f (glob)
296 *: add d1/f (glob)
297 *: add d0/f (glob)
294 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
295 2: add d2/f
296 1: add d1/f
297 0: add d0/f
298 298 $ hg pull -q -r 3
299 299 $ hg co -q tip
300 300 $ hg pull -q -r 4
301 301 $ echo local > d2/f
302 302 $ hg ci -m local
303 303 created new head
304 304 $ hg tracked -q --addinclude d0 --addinclude d9
305 305
306 306 Widening preserves bookmarks
307 307
308 308 $ cd ..
309 309 $ hg clone -q --narrow ssh://user@dummy/upstream narrow-bookmarks --include d4
310 310 $ cd narrow-bookmarks
311 311 $ echo local > d4/f
312 312 $ hg ci -m local
313 313 $ hg bookmarks bookmark
314 314 $ hg bookmarks
315 315 * bookmark 11:* (glob)
316 316 $ hg -q tracked --addinclude d2
317 317 $ hg bookmarks
318 318 * bookmark 11:* (glob)
319 319 $ hg log -r bookmark -T '{desc}\n'
320 320 local
321 321
322 322 Widening that fails can be recovered from
323 323
324 324 $ cd ..
325 325 $ hg clone -q --narrow ssh://user@dummy/upstream interrupted --include d0
326 326 $ cd interrupted
327 327 $ echo local > d0/f
328 328 $ hg ci -m local
329 329 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
330 330 11: local
331 331 10: add d10/f
332 332 9: add d9/f
333 333 8: add d8/f
334 334 7: add d7/f
335 335 6: add d6/f
336 336 5: add d5/f
337 337 4: add d4/f
338 338 3: add d3/f
339 339 2: add d2/f
340 340 1: add d1/f
341 341 0: add d0/f
342 342 $ hg bookmarks bookmark
343 343 $ hg --config hooks.pretxnchangegroup.bad=false tracked --addinclude d1
344 344 comparing with ssh://user@dummy/upstream
345 345 searching for changes
346 346 no changes found
347 347 adding changesets
348 348 adding manifests
349 349 adding file changes
350 350 added 0 changesets with 1 changes to 2 files
351 351 11 local changesets published
352 352 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
353 353 11: local
354 354 10: add d10/f
355 355 9: add d9/f
356 356 8: add d8/f
357 357 7: add d7/f
358 358 6: add d6/f
359 359 5: add d5/f
360 360 4: add d4/f
361 361 3: add d3/f
362 362 2: add d2/f
363 363 1: add d1/f
364 364 0: add d0/f
365 365 $ hg bookmarks
366 366 * bookmark 11:* (glob)
367 367 $ hg unbundle .hg/strip-backup/*-widen.hg
368 368 abort: $ENOENT$: .hg/strip-backup/*-widen.hg
369 369 [255]
370 370 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
371 371 11: local
372 372 10: add d10/f
373 373 9: add d9/f
374 374 8: add d8/f
375 375 7: add d7/f
376 376 6: add d6/f
377 377 5: add d5/f
378 378 4: add d4/f
379 379 3: add d3/f
380 380 2: add d2/f
381 381 1: add d1/f
382 382 0: add d0/f
383 383 $ hg bookmarks
384 384 * bookmark 11:* (glob)
@@ -1,365 +1,365
1 1 #testcases flat tree
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 $ cat >> .hg/hgrc <<EOF
14 14 > [narrow]
15 15 > serveellipses=True
16 16 > EOF
17 17
18 18 $ mkdir inside
19 19 $ echo 'inside' > inside/f
20 20 $ hg add inside/f
21 21 $ hg commit -m 'add inside'
22 22
23 23 $ mkdir widest
24 24 $ echo 'widest' > widest/f
25 25 $ hg add widest/f
26 26 $ hg commit -m 'add widest'
27 27
28 28 $ mkdir outside
29 29 $ echo 'outside' > outside/f
30 30 $ hg add outside/f
31 31 $ hg commit -m 'add outside'
32 32
33 33 $ cd ..
34 34
35 35 narrow clone the inside file
36 36
37 37 $ hg clone --narrow ssh://user@dummy/master narrow --include inside
38 38 requesting all changes
39 39 adding changesets
40 40 adding manifests
41 41 adding file changes
42 42 added 2 changesets with 1 changes to 1 files
43 43 new changesets *:* (glob)
44 44 updating to branch default
45 45 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
46 46 $ cd narrow
47 47 $ hg tracked
48 48 I path:inside
49 49 $ ls
50 50 inside
51 51 $ cat inside/f
52 52 inside
53 53 $ cd ..
54 54
55 55 add more upstream files which we will include in a wider narrow spec
56 56
57 57 $ cd master
58 58
59 59 $ mkdir wider
60 60 $ echo 'wider' > wider/f
61 61 $ hg add wider/f
62 62 $ echo 'widest v2' > widest/f
63 63 $ hg commit -m 'add wider, update widest'
64 64
65 65 $ echo 'widest v3' > widest/f
66 66 $ hg commit -m 'update widest v3'
67 67
68 68 $ echo 'inside v2' > inside/f
69 69 $ hg commit -m 'update inside'
70 70
71 71 $ mkdir outside2
72 72 $ echo 'outside2' > outside2/f
73 73 $ hg add outside2/f
74 74 $ hg commit -m 'add outside2'
75 75
76 76 $ echo 'widest v4' > widest/f
77 77 $ hg commit -m 'update widest v4'
78 78
79 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
80 *: update widest v4 (glob)
81 *: add outside2 (glob)
82 *: update inside (glob)
83 *: update widest v3 (glob)
84 *: add wider, update widest (glob)
85 *: add outside (glob)
86 *: add widest (glob)
87 *: add inside (glob)
79 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
80 7: update widest v4
81 6: add outside2
82 5: update inside
83 4: update widest v3
84 3: add wider, update widest
85 2: add outside
86 1: add widest
87 0: add inside
88 88
89 89 $ cd ..
90 90
91 91 Widen the narrow spec to see the wider file. This should not get the newly
92 92 added upstream revisions.
93 93
94 94 $ cd narrow
95 95 $ hg tracked --addinclude wider/f
96 96 comparing with ssh://user@dummy/master
97 97 searching for changes
98 98 no changes found
99 99 saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)
100 100 adding changesets
101 101 adding manifests
102 102 adding file changes
103 103 added 2 changesets with 1 changes to 1 files
104 104 new changesets *:* (glob)
105 105 $ hg tracked
106 106 I path:inside
107 107 I path:wider/f
108 108
109 109 Pull down the newly added upstream revision.
110 110
111 111 $ hg pull
112 112 pulling from ssh://user@dummy/master
113 113 searching for changes
114 114 adding changesets
115 115 adding manifests
116 116 adding file changes
117 117 added 4 changesets with 2 changes to 2 files
118 118 new changesets *:* (glob)
119 119 (run 'hg update' to get a working copy)
120 120 $ hg update -r 'desc("add wider")'
121 121 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
122 122 $ cat wider/f
123 123 wider
124 124
125 125 $ hg update -r 'desc("update inside")'
126 126 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
127 127 $ cat wider/f
128 128 wider
129 129 $ cat inside/f
130 130 inside v2
131 131
132 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
133 ...*: update widest v4 (glob)
134 *: update inside (glob)
135 ...*: update widest v3 (glob)
136 *: add wider, update widest (glob)
137 ...*: add outside (glob)
138 *: add inside (glob)
132 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
133 ...5: update widest v4
134 4: update inside
135 ...3: update widest v3
136 2: add wider, update widest
137 ...1: add outside
138 0: add inside
139 139
140 140 Check that widening with a newline fails
141 141
142 142 $ hg tracked --addinclude 'widest
143 143 > '
144 144 abort: newlines are not allowed in narrowspec paths
145 145 [255]
146 146
147 147 widen the narrow spec to include the widest file
148 148
149 149 $ hg tracked --addinclude widest
150 150 comparing with ssh://user@dummy/master
151 151 searching for changes
152 152 no changes found
153 153 saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)
154 154 adding changesets
155 155 adding manifests
156 156 adding file changes
157 157 added 8 changesets with 7 changes to 3 files
158 158 new changesets *:* (glob)
159 159 $ hg tracked
160 160 I path:inside
161 161 I path:wider/f
162 162 I path:widest
163 163 $ hg update 'desc("add widest")'
164 164 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
165 165 $ cat widest/f
166 166 widest
167 167 $ hg update 'desc("add wider, update widest")'
168 168 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
169 169 $ cat wider/f
170 170 wider
171 171 $ cat widest/f
172 172 widest v2
173 173 $ hg update 'desc("update widest v3")'
174 174 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
175 175 $ cat widest/f
176 176 widest v3
177 177 $ hg update 'desc("update widest v4")'
178 178 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
179 179 $ cat widest/f
180 180 widest v4
181 181
182 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
183 *: update widest v4 (glob)
184 ...*: add outside2 (glob)
185 *: update inside (glob)
186 *: update widest v3 (glob)
187 *: add wider, update widest (glob)
188 ...*: add outside (glob)
189 *: add widest (glob)
190 *: add inside (glob)
182 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
183 7: update widest v4
184 ...6: add outside2
185 5: update inside
186 4: update widest v3
187 3: add wider, update widest
188 ...2: add outside
189 1: add widest
190 0: add inside
191 191
192 192 separate suite of tests: files from 0-10 modified in changes 0-10. This allows
193 193 more obvious precise tests tickling particular corner cases.
194 194
195 195 $ cd ..
196 196 $ hg init upstream
197 197 $ cd upstream
198 198 $ cat >> .hg/hgrc <<EOF
199 199 > [narrow]
200 200 > serveellipses=True
201 201 > EOF
202 202 $ for x in `$TESTDIR/seq.py 0 10`
203 203 > do
204 204 > mkdir d$x
205 205 > echo $x > d$x/f
206 206 > hg add d$x/f
207 207 > hg commit -m "add d$x/f"
208 208 > done
209 $ hg log -T "{node|short}: {desc}\n"
210 *: add d10/f (glob)
211 *: add d9/f (glob)
212 *: add d8/f (glob)
213 *: add d7/f (glob)
214 *: add d6/f (glob)
215 *: add d5/f (glob)
216 *: add d4/f (glob)
217 *: add d3/f (glob)
218 *: add d2/f (glob)
219 *: add d1/f (glob)
220 *: add d0/f (glob)
209 $ hg log -T "{rev}: {desc}\n"
210 10: add d10/f
211 9: add d9/f
212 8: add d8/f
213 7: add d7/f
214 6: add d6/f
215 5: add d5/f
216 4: add d4/f
217 3: add d3/f
218 2: add d2/f
219 1: add d1/f
220 0: add d0/f
221 221
222 222 make narrow clone with every third node.
223 223
224 224 $ cd ..
225 225 $ hg clone --narrow ssh://user@dummy/upstream narrow2 --include d0 --include d3 --include d6 --include d9
226 226 requesting all changes
227 227 adding changesets
228 228 adding manifests
229 229 adding file changes
230 230 added 8 changesets with 4 changes to 4 files
231 231 new changesets *:* (glob)
232 232 updating to branch default
233 233 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
234 234 $ cd narrow2
235 235 $ hg tracked
236 236 I path:d0
237 237 I path:d3
238 238 I path:d6
239 239 I path:d9
240 240 $ hg verify
241 241 checking changesets
242 242 checking manifests
243 243 checking directory manifests (tree !)
244 244 crosschecking files in changesets and manifests
245 245 checking files
246 246 4 files, 8 changesets, 4 total revisions
247 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
248 ...*: add d10/f (glob)
249 *: add d9/f (glob)
250 ...*: add d8/f (glob)
251 *: add d6/f (glob)
252 ...*: add d5/f (glob)
253 *: add d3/f (glob)
254 ...*: add d2/f (glob)
255 *: add d0/f (glob)
247 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
248 ...7: add d10/f
249 6: add d9/f
250 ...5: add d8/f
251 4: add d6/f
252 ...3: add d5/f
253 2: add d3/f
254 ...1: add d2/f
255 0: add d0/f
256 256 $ hg tracked --addinclude d1
257 257 comparing with ssh://user@dummy/upstream
258 258 searching for changes
259 259 no changes found
260 260 saved backup bundle to $TESTTMP/narrow2/.hg/strip-backup/*-widen.hg (glob)
261 261 adding changesets
262 262 adding manifests
263 263 adding file changes
264 264 added 9 changesets with 5 changes to 5 files
265 265 new changesets *:* (glob)
266 266 $ hg tracked
267 267 I path:d0
268 268 I path:d1
269 269 I path:d3
270 270 I path:d6
271 271 I path:d9
272 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
273 ...*: add d10/f (glob)
274 *: add d9/f (glob)
275 ...*: add d8/f (glob)
276 *: add d6/f (glob)
277 ...*: add d5/f (glob)
278 *: add d3/f (glob)
279 ...*: add d2/f (glob)
280 *: add d1/f (glob)
281 *: add d0/f (glob)
272 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
273 ...8: add d10/f
274 7: add d9/f
275 ...6: add d8/f
276 5: add d6/f
277 ...4: add d5/f
278 3: add d3/f
279 ...2: add d2/f
280 1: add d1/f
281 0: add d0/f
282 282
283 283 Verify shouldn't claim the repo is corrupt after a widen.
284 284
285 285 $ hg verify
286 286 checking changesets
287 287 checking manifests
288 288 checking directory manifests (tree !)
289 289 crosschecking files in changesets and manifests
290 290 checking files
291 291 5 files, 9 changesets, 5 total revisions
292 292
293 293 Widening preserves parent of local commit
294 294
295 295 $ cd ..
296 296 $ hg clone -q --narrow ssh://user@dummy/upstream narrow3 --include d2 -r 2
297 297 $ cd narrow3
298 $ hg log -T "{if(ellipsis, '...')}{node|short}: {desc}\n"
299 *: add d2/f (glob)
300 ...*: add d1/f (glob)
298 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
299 1: add d2/f
300 ...0: add d1/f
301 301 $ hg pull -q -r 3
302 302 $ hg co -q tip
303 303 $ hg pull -q -r 4
304 304 $ echo local > d2/f
305 305 $ hg ci -m local
306 306 created new head
307 307 $ hg tracked -q --addinclude d0 --addinclude d9
308 308
309 309 Widening preserves bookmarks
310 310
311 311 $ cd ..
312 312 $ hg clone -q --narrow ssh://user@dummy/upstream narrow-bookmarks --include d4
313 313 $ cd narrow-bookmarks
314 314 $ echo local > d4/f
315 315 $ hg ci -m local
316 316 $ hg bookmarks bookmark
317 317 $ hg bookmarks
318 318 * bookmark 3:* (glob)
319 319 $ hg -q tracked --addinclude d2
320 320 $ hg bookmarks
321 321 * bookmark 5:* (glob)
322 322 $ hg log -r bookmark -T '{desc}\n'
323 323 local
324 324
325 325 Widening that fails can be recovered from
326 326
327 327 $ cd ..
328 328 $ hg clone -q --narrow ssh://user@dummy/upstream interrupted --include d0
329 329 $ cd interrupted
330 330 $ echo local > d0/f
331 331 $ hg ci -m local
332 332 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
333 333 2: local
334 334 ...1: add d10/f
335 335 0: add d0/f
336 336 $ hg bookmarks bookmark
337 337 $ hg --config hooks.pretxnchangegroup.bad=false tracked --addinclude d1
338 338 comparing with ssh://user@dummy/upstream
339 339 searching for changes
340 340 no changes found
341 341 saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/*-widen.hg (glob)
342 342 adding changesets
343 343 adding manifests
344 344 adding file changes
345 345 added 3 changesets with 2 changes to 2 files
346 346 transaction abort!
347 347 rollback completed
348 348 abort: pretxnchangegroup.bad hook exited with status 1
349 349 [255]
350 350 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
351 351 $ hg bookmarks
352 352 no bookmarks set
353 353 $ hg unbundle .hg/strip-backup/*-widen.hg
354 354 adding changesets
355 355 adding manifests
356 356 adding file changes
357 357 added 3 changesets with 2 changes to 1 files
358 358 new changesets *:* (glob)
359 359 (run 'hg update' to get a working copy)
360 360 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
361 361 2: local
362 362 ...1: add d10/f
363 363 0: add d0/f
364 364 $ hg bookmarks
365 365 * bookmark 2:* (glob)
@@ -1,402 +1,402
1 1 #testcases flat tree
2 2
3 3 $ . "$TESTDIR/narrow-library.sh"
4 4
5 5 #if tree
6 6 $ cat << EOF >> $HGRCPATH
7 7 > [experimental]
8 8 > treemanifest = 1
9 9 > EOF
10 10 #endif
11 11
12 12 $ hg init master
13 13 $ cd master
14 14 $ cat >> .hg/hgrc <<EOF
15 15 > [narrow]
16 16 > serveellipses=True
17 17 > EOF
18 18 $ for x in `$TESTDIR/seq.py 0 10`
19 19 > do
20 20 > mkdir d$x
21 21 > echo $x > d$x/f
22 22 > hg add d$x/f
23 23 > hg commit -m "add d$x/f"
24 24 > done
25 $ hg log -T "{node|short}: {desc}\n"
26 *: add d10/f (glob)
27 *: add d9/f (glob)
28 *: add d8/f (glob)
29 *: add d7/f (glob)
30 *: add d6/f (glob)
31 *: add d5/f (glob)
32 *: add d4/f (glob)
33 *: add d3/f (glob)
34 *: add d2/f (glob)
35 *: add d1/f (glob)
36 *: add d0/f (glob)
25 $ hg log -T "{rev}: {desc}\n"
26 10: add d10/f
27 9: add d9/f
28 8: add d8/f
29 7: add d7/f
30 6: add d6/f
31 5: add d5/f
32 4: add d4/f
33 3: add d3/f
34 2: add d2/f
35 1: add d1/f
36 0: add d0/f
37 37 $ cd ..
38 38
39 39 Error if '.' or '..' are in the directory to track.
40 40 $ hg clone --narrow ssh://user@dummy/master foo --include ./asdf
41 41 requesting all changes
42 42 abort: "." and ".." are not allowed in narrowspec paths
43 43 [255]
44 44 $ hg clone --narrow ssh://user@dummy/master foo --include asdf/..
45 45 requesting all changes
46 46 abort: "." and ".." are not allowed in narrowspec paths
47 47 [255]
48 48 $ hg clone --narrow ssh://user@dummy/master foo --include a/./c
49 49 requesting all changes
50 50 abort: "." and ".." are not allowed in narrowspec paths
51 51 [255]
52 52
53 53 Names with '.' in them are OK.
54 54 $ hg clone --narrow ssh://user@dummy/master should-work --include a/.b/c
55 55 requesting all changes
56 56 adding changesets
57 57 adding manifests
58 58 adding file changes
59 59 added 1 changesets with 0 changes to 0 files
60 60 new changesets * (glob)
61 61 updating to branch default
62 62 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
63 63
64 64 Test repo with local changes
65 65 $ hg clone --narrow ssh://user@dummy/master narrow-local-changes --include d0 --include d3 --include d6
66 66 requesting all changes
67 67 adding changesets
68 68 adding manifests
69 69 adding file changes
70 70 added 6 changesets with 3 changes to 3 files
71 71 new changesets *:* (glob)
72 72 updating to branch default
73 73 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
74 74 $ cd narrow-local-changes
75 75 $ cat >> $HGRCPATH << EOF
76 76 > [experimental]
77 77 > evolution=createmarkers
78 78 > EOF
79 79 $ echo local change >> d0/f
80 80 $ hg ci -m 'local change to d0'
81 81 $ hg co '.^'
82 82 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
83 83 $ echo local change >> d3/f
84 84 $ hg ci -m 'local hidden change to d3'
85 85 created new head
86 86 $ hg ci --amend -m 'local change to d3'
87 87 $ hg tracked --removeinclude d0
88 88 comparing with ssh://user@dummy/master
89 89 searching for changes
90 90 looking for local changes to affected paths
91 91 The following changeset(s) or their ancestors have local changes not on the remote:
92 92 * (glob)
93 93 abort: local changes found
94 94 (use --force-delete-local-changes to ignore)
95 95 [255]
96 96 Check that nothing was removed by the failed attempts
97 97 $ hg tracked
98 98 I path:d0
99 99 I path:d3
100 100 I path:d6
101 101 $ hg files
102 102 d0/f
103 103 d3/f
104 104 d6/f
105 105 $ find *
106 106 d0
107 107 d0/f
108 108 d3
109 109 d3/f
110 110 d6
111 111 d6/f
112 112 $ hg verify -q
113 113 Force deletion of local changes
114 $ hg log -T "{node|short}: {desc} {outsidenarrow}\n"
115 *: local change to d3 (glob)
116 *: local change to d0 (glob)
117 *: add d10/f outsidenarrow (glob)
118 *: add d6/f (glob)
119 *: add d5/f outsidenarrow (glob)
120 *: add d3/f (glob)
121 *: add d2/f outsidenarrow (glob)
122 *: add d0/f (glob)
114 $ hg log -T "{rev}: {desc} {outsidenarrow}\n"
115 8: local change to d3
116 6: local change to d0
117 5: add d10/f outsidenarrow
118 4: add d6/f
119 3: add d5/f outsidenarrow
120 2: add d3/f
121 1: add d2/f outsidenarrow
122 0: add d0/f
123 123 $ hg tracked --removeinclude d0 --force-delete-local-changes
124 124 comparing with ssh://user@dummy/master
125 125 searching for changes
126 126 looking for local changes to affected paths
127 127 The following changeset(s) or their ancestors have local changes not on the remote:
128 128 * (glob)
129 129 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
130 130 deleting data/d0/f.i (reporevlogstore !)
131 131 deleting meta/d0/00manifest.i (tree !)
132 132 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
133 133 deleting data/d0/f/4374b5650fc5ae54ac857c0f0381971fdde376f7 (reposimplestore !)
134 134 deleting data/d0/f/index (reposimplestore !)
135 135
136 $ hg log -T "{node|short}: {desc} {outsidenarrow}\n"
137 *: local change to d3 (glob)
138 *: add d10/f outsidenarrow (glob)
139 *: add d6/f (glob)
140 *: add d5/f outsidenarrow (glob)
141 *: add d3/f (glob)
142 *: add d2/f outsidenarrow (glob)
143 *: add d0/f outsidenarrow (glob)
136 $ hg log -T "{rev}: {desc} {outsidenarrow}\n"
137 7: local change to d3
138 5: add d10/f outsidenarrow
139 4: add d6/f
140 3: add d5/f outsidenarrow
141 2: add d3/f
142 1: add d2/f outsidenarrow
143 0: add d0/f outsidenarrow
144 144 Can restore stripped local changes after widening
145 145 $ hg tracked --addinclude d0 -q
146 146 $ hg unbundle .hg/strip-backup/*-narrow.hg -q
147 147 $ hg --hidden co -r 'desc("local change to d0")' -q
148 148 $ cat d0/f
149 149 0
150 150 local change
151 151 Pruned commits affecting removed paths should not prevent narrowing
152 152 $ hg co '.^'
153 153 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
154 154 $ hg debugobsolete `hg log -T '{node}' -r 'desc("local change to d0")'`
155 155 obsoleted 1 changesets
156 156 $ hg tracked --removeinclude d0
157 157 comparing with ssh://user@dummy/master
158 158 searching for changes
159 159 looking for local changes to affected paths
160 160 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
161 161 deleting data/d0/f.i (reporevlogstore !)
162 162 deleting meta/d0/00manifest.i (tree !)
163 163 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
164 164 deleting data/d0/f/4374b5650fc5ae54ac857c0f0381971fdde376f7 (reposimplestore !)
165 165 deleting data/d0/f/index (reposimplestore !)
166 166
167 167 Updates off of stripped commit if necessary
168 168 $ hg co -r 'desc("local change to d3")' -q
169 169 $ echo local change >> d6/f
170 170 $ hg ci -m 'local change to d6'
171 171 $ hg tracked --removeinclude d3 --force-delete-local-changes
172 172 comparing with ssh://user@dummy/master
173 173 searching for changes
174 174 looking for local changes to affected paths
175 175 The following changeset(s) or their ancestors have local changes not on the remote:
176 176 * (glob)
177 177 * (glob)
178 178 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
179 179 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
180 180 deleting data/d3/f.i (reporevlogstore !)
181 181 deleting meta/d3/00manifest.i (tree !)
182 182 deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)
183 183 deleting data/d3/f/99fa7136105a15e2045ce3d9152e4837c5349e4d (reposimplestore !)
184 184 deleting data/d3/f/index (reposimplestore !)
185 185 $ hg log -T '{desc}\n' -r .
186 186 add d10/f
187 187 Updates to nullid if necessary
188 188 $ hg tracked --addinclude d3 -q
189 189 $ hg co null -q
190 190 $ mkdir d3
191 191 $ echo local change > d3/f
192 192 $ hg add d3/f
193 193 $ hg ci -m 'local change to d3'
194 194 created new head
195 195 $ hg tracked --removeinclude d3 --force-delete-local-changes
196 196 comparing with ssh://user@dummy/master
197 197 searching for changes
198 198 looking for local changes to affected paths
199 199 The following changeset(s) or their ancestors have local changes not on the remote:
200 200 * (glob)
201 201 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
202 202 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
203 203 deleting data/d3/f.i (reporevlogstore !)
204 204 deleting meta/d3/00manifest.i (tree !)
205 205 deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)
206 206 deleting data/d3/f/5ce0767945cbdbca3b924bb9fbf5143f72ab40ac (reposimplestore !)
207 207 deleting data/d3/f/index (reposimplestore !)
208 208 $ hg id
209 209 000000000000
210 210 $ cd ..
211 211
212 212 Can remove last include, making repo empty
213 213 $ hg clone --narrow ssh://user@dummy/master narrow-empty --include d0 -r 5
214 214 adding changesets
215 215 adding manifests
216 216 adding file changes
217 217 added 2 changesets with 1 changes to 1 files
218 218 new changesets *:* (glob)
219 219 updating to branch default
220 220 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
221 221 $ cd narrow-empty
222 222 $ hg tracked --removeinclude d0
223 223 comparing with ssh://user@dummy/master
224 224 searching for changes
225 225 looking for local changes to affected paths
226 226 deleting data/d0/f.i (reporevlogstore !)
227 227 deleting meta/d0/00manifest.i (tree !)
228 228 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
229 229 deleting data/d0/f/index (reposimplestore !)
230 230 $ hg tracked
231 231 $ hg files
232 232 [1]
233 233 $ test -d d0
234 234 [1]
235 235 Do some work in the empty clone
236 236 $ hg diff --change .
237 237 $ hg branch foo
238 238 marked working directory as branch foo
239 239 (branches are permanent and global, did you want a bookmark?)
240 240 $ hg ci -m empty
241 241 $ hg pull -q
242 242 Can widen the empty clone
243 243 $ hg tracked --addinclude d0
244 244 comparing with ssh://user@dummy/master
245 245 searching for changes
246 246 no changes found
247 247 saved backup bundle to $TESTTMP/narrow-empty/.hg/strip-backup/*-widen.hg (glob)
248 248 adding changesets
249 249 adding manifests
250 250 adding file changes
251 251 added 3 changesets with 1 changes to 1 files
252 252 new changesets *:* (glob)
253 253 $ hg tracked
254 254 I path:d0
255 255 $ hg files
256 256 d0/f
257 257 $ find *
258 258 d0
259 259 d0/f
260 260 $ cd ..
261 261
262 262 TODO(martinvonz): test including e.g. d3/g and then removing it once
263 263 https://bitbucket.org/Google/narrowhg/issues/6 is fixed
264 264
265 265 $ hg clone --narrow ssh://user@dummy/master narrow --include d0 --include d3 --include d6 --include d9
266 266 requesting all changes
267 267 adding changesets
268 268 adding manifests
269 269 adding file changes
270 270 added 8 changesets with 4 changes to 4 files
271 271 new changesets *:* (glob)
272 272 updating to branch default
273 273 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
274 274 $ cd narrow
275 275 $ hg tracked
276 276 I path:d0
277 277 I path:d3
278 278 I path:d6
279 279 I path:d9
280 280 $ hg tracked --removeinclude d6
281 281 comparing with ssh://user@dummy/master
282 282 searching for changes
283 283 looking for local changes to affected paths
284 284 deleting data/d6/f.i (reporevlogstore !)
285 285 deleting meta/d6/00manifest.i (tree !)
286 286 deleting data/d6/f/7339d30678f451ac8c3f38753beeb4cf2e1655c7 (reposimplestore !)
287 287 deleting data/d6/f/index (reposimplestore !)
288 288 $ hg tracked
289 289 I path:d0
290 290 I path:d3
291 291 I path:d9
292 292 #if repofncache
293 293 $ hg debugrebuildfncache
294 294 fncache already up to date
295 295 #endif
296 296 $ find *
297 297 d0
298 298 d0/f
299 299 d3
300 300 d3/f
301 301 d9
302 302 d9/f
303 303 $ hg verify -q
304 304 $ hg tracked --addexclude d3/f
305 305 comparing with ssh://user@dummy/master
306 306 searching for changes
307 307 looking for local changes to affected paths
308 308 deleting data/d3/f.i (reporevlogstore !)
309 309 deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)
310 310 deleting data/d3/f/index (reposimplestore !)
311 311 $ hg tracked
312 312 I path:d0
313 313 I path:d3
314 314 I path:d9
315 315 X path:d3/f
316 316 #if repofncache
317 317 $ hg debugrebuildfncache
318 318 fncache already up to date
319 319 #endif
320 320 $ find *
321 321 d0
322 322 d0/f
323 323 d9
324 324 d9/f
325 325 $ hg verify -q
326 326 $ hg tracked --addexclude d0
327 327 comparing with ssh://user@dummy/master
328 328 searching for changes
329 329 looking for local changes to affected paths
330 330 deleting data/d0/f.i (reporevlogstore !)
331 331 deleting meta/d0/00manifest.i (tree !)
332 332 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
333 333 deleting data/d0/f/index (reposimplestore !)
334 334 $ hg tracked
335 335 I path:d3
336 336 I path:d9
337 337 X path:d0
338 338 X path:d3/f
339 339 #if repofncache
340 340 $ hg debugrebuildfncache
341 341 fncache already up to date
342 342 #endif
343 343 $ find *
344 344 d9
345 345 d9/f
346 346
347 347 Make a 15 of changes to d9 to test the path without --verbose
348 348 (Note: using regexes instead of "* (glob)" because if the test fails, it
349 349 produces more sensible diffs)
350 350 $ hg tracked
351 351 I path:d3
352 352 I path:d9
353 353 X path:d0
354 354 X path:d3/f
355 355 $ for x in `$TESTDIR/seq.py 1 15`
356 356 > do
357 357 > echo local change >> d9/f
358 358 > hg commit -m "change $x to d9/f"
359 359 > done
360 360 $ hg tracked --removeinclude d9
361 361 comparing with ssh://user@dummy/master
362 362 searching for changes
363 363 looking for local changes to affected paths
364 364 The following changeset(s) or their ancestors have local changes not on the remote:
365 365 ^[0-9a-f]{12}$ (re)
366 366 ^[0-9a-f]{12}$ (re)
367 367 ^[0-9a-f]{12}$ (re)
368 368 ^[0-9a-f]{12}$ (re)
369 369 ^[0-9a-f]{12}$ (re)
370 370 ^[0-9a-f]{12}$ (re)
371 371 ^[0-9a-f]{12}$ (re)
372 372 ^[0-9a-f]{12}$ (re)
373 373 ^[0-9a-f]{12}$ (re)
374 374 ^[0-9a-f]{12}$ (re)
375 375 ...and 5 more, use --verbose to list all
376 376 abort: local changes found
377 377 (use --force-delete-local-changes to ignore)
378 378 [255]
379 379 Now test it *with* verbose.
380 380 $ hg tracked --removeinclude d9 --verbose
381 381 comparing with ssh://user@dummy/master
382 382 searching for changes
383 383 looking for local changes to affected paths
384 384 The following changeset(s) or their ancestors have local changes not on the remote:
385 385 ^[0-9a-f]{12}$ (re)
386 386 ^[0-9a-f]{12}$ (re)
387 387 ^[0-9a-f]{12}$ (re)
388 388 ^[0-9a-f]{12}$ (re)
389 389 ^[0-9a-f]{12}$ (re)
390 390 ^[0-9a-f]{12}$ (re)
391 391 ^[0-9a-f]{12}$ (re)
392 392 ^[0-9a-f]{12}$ (re)
393 393 ^[0-9a-f]{12}$ (re)
394 394 ^[0-9a-f]{12}$ (re)
395 395 ^[0-9a-f]{12}$ (re)
396 396 ^[0-9a-f]{12}$ (re)
397 397 ^[0-9a-f]{12}$ (re)
398 398 ^[0-9a-f]{12}$ (re)
399 399 ^[0-9a-f]{12}$ (re)
400 400 abort: local changes found
401 401 (use --force-delete-local-changes to ignore)
402 402 [255]
General Comments 0
You need to be logged in to leave comments. Login now