Mercurial > hg
comparison tests/test-share-safe.t @ 46334:4b0192f592cf
share: move share safe functionality out of experimental
The share-safe functionality is complete and all configuration options are
implemented. The behavior is well discussed on mailing list and in reviews.
Let's unmark this as experimental to solve a chichen and egg issue.
Differential Revision: https://phab.mercurial-scm.org/D9823
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Mon, 18 Jan 2021 19:16:49 +0530 |
parents | 2eb5fe13461b |
children | 4a58561ace0f 8b02f132adf6 |
comparison
equal
deleted
inserted
replaced
46333:2eb5fe13461b | 46334:4b0192f592cf |
---|---|
2 | 2 |
3 $ cat >> $HGRCPATH <<EOF | 3 $ cat >> $HGRCPATH <<EOF |
4 > [extensions] | 4 > [extensions] |
5 > share = | 5 > share = |
6 > [format] | 6 > [format] |
7 > exp-share-safe = True | 7 > use-share-safe = True |
8 > [storage] | 8 > [storage] |
9 > revlog.persistent-nodemap.slow-path=allow | 9 > revlog.persistent-nodemap.slow-path=allow |
10 > EOF | 10 > EOF |
11 | 11 |
12 prepare source repo | 12 prepare source repo |
13 | 13 |
14 $ hg init source | 14 $ hg init source |
15 $ cd source | 15 $ cd source |
16 $ cat .hg/requires | 16 $ cat .hg/requires |
17 exp-sharesafe | 17 share-safe |
18 $ cat .hg/store/requires | 18 $ cat .hg/store/requires |
19 dotencode | 19 dotencode |
20 fncache | 20 fncache |
21 generaldelta | 21 generaldelta |
22 revlogv1 | 22 revlogv1 |
23 sparserevlog | 23 sparserevlog |
24 store | 24 store |
25 $ hg debugrequirements | 25 $ hg debugrequirements |
26 dotencode | 26 dotencode |
27 exp-sharesafe | 27 fncache |
28 fncache | 28 generaldelta |
29 generaldelta | 29 revlogv1 |
30 revlogv1 | 30 share-safe |
31 sparserevlog | 31 sparserevlog |
32 store | 32 store |
33 | 33 |
34 $ echo a > a | 34 $ echo a > a |
35 $ hg ci -Aqm "added a" | 35 $ hg ci -Aqm "added a" |
45 $ hg share source shared1 | 45 $ hg share source shared1 |
46 updating working directory | 46 updating working directory |
47 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | 47 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
48 $ cd shared1 | 48 $ cd shared1 |
49 $ cat .hg/requires | 49 $ cat .hg/requires |
50 exp-sharesafe | 50 share-safe |
51 shared | 51 shared |
52 | 52 |
53 $ hg debugrequirements -R ../source | 53 $ hg debugrequirements -R ../source |
54 dotencode | 54 dotencode |
55 exp-sharesafe | 55 fncache |
56 fncache | 56 generaldelta |
57 generaldelta | 57 revlogv1 |
58 revlogv1 | 58 share-safe |
59 sparserevlog | 59 sparserevlog |
60 store | 60 store |
61 | 61 |
62 $ hg debugrequirements | 62 $ hg debugrequirements |
63 dotencode | 63 dotencode |
64 exp-sharesafe | 64 fncache |
65 fncache | 65 generaldelta |
66 generaldelta | 66 revlogv1 |
67 revlogv1 | 67 share-safe |
68 shared | 68 shared |
69 sparserevlog | 69 sparserevlog |
70 store | 70 store |
71 | 71 |
72 $ echo c > c | 72 $ echo c > c |
212 | 212 |
213 $ hg debugupgraderepo --run -q | 213 $ hg debugupgraderepo --run -q |
214 upgrade will perform the following actions: | 214 upgrade will perform the following actions: |
215 | 215 |
216 requirements | 216 requirements |
217 preserved: dotencode, exp-sharesafe, fncache, generaldelta, revlogv1, sparserevlog, store | 217 preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store |
218 added: revlog-compression-zstd | 218 added: revlog-compression-zstd |
219 | 219 |
220 processed revlogs: | 220 processed revlogs: |
221 - all-filelogs | 221 - all-filelogs |
222 - changelog | 222 - changelog |
238 | 238 |
239 $ hg debugupgraderepo --run -q | 239 $ hg debugupgraderepo --run -q |
240 upgrade will perform the following actions: | 240 upgrade will perform the following actions: |
241 | 241 |
242 requirements | 242 requirements |
243 preserved: dotencode, exp-sharesafe, fncache, generaldelta, revlogv1, sparserevlog, store (no-zstd !) | 243 preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-zstd !) |
244 preserved: dotencode, exp-sharesafe, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !) | 244 preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, share-safe, sparserevlog, store (zstd !) |
245 added: persistent-nodemap | 245 added: persistent-nodemap |
246 | 246 |
247 processed revlogs: | 247 processed revlogs: |
248 - all-filelogs | 248 - all-filelogs |
249 - changelog | 249 - changelog |
308 $ cd ../ | 308 $ cd ../ |
309 | 309 |
310 Test that upgrading using debugupgraderepo works | 310 Test that upgrading using debugupgraderepo works |
311 ================================================= | 311 ================================================= |
312 | 312 |
313 $ hg init non-share-safe --config format.exp-share-safe=false | 313 $ hg init non-share-safe --config format.use-share-safe=false |
314 $ cd non-share-safe | 314 $ cd non-share-safe |
315 $ hg debugrequirements | 315 $ hg debugrequirements |
316 dotencode | 316 dotencode |
317 fncache | 317 fncache |
318 generaldelta | 318 generaldelta |
343 Upgrade | 343 Upgrade |
344 | 344 |
345 $ hg debugupgraderepo -q | 345 $ hg debugupgraderepo -q |
346 requirements | 346 requirements |
347 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | 347 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store |
348 added: exp-sharesafe | 348 added: share-safe |
349 | 349 |
350 processed revlogs: | 350 processed revlogs: |
351 - all-filelogs | 351 - all-filelogs |
352 - changelog | 352 - changelog |
353 - manifest | 353 - manifest |
355 $ hg debugupgraderepo --run -q | 355 $ hg debugupgraderepo --run -q |
356 upgrade will perform the following actions: | 356 upgrade will perform the following actions: |
357 | 357 |
358 requirements | 358 requirements |
359 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | 359 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store |
360 added: exp-sharesafe | 360 added: share-safe |
361 | 361 |
362 processed revlogs: | 362 processed revlogs: |
363 - all-filelogs | 363 - all-filelogs |
364 - changelog | 364 - changelog |
365 - manifest | 365 - manifest |
366 | 366 |
367 repository upgraded to share safe mode, existing shares will still work in old non-safe mode. Re-share existing shares to use them in safe mode New shares will be created in safe mode. | 367 repository upgraded to share safe mode, existing shares will still work in old non-safe mode. Re-share existing shares to use them in safe mode New shares will be created in safe mode. |
368 | 368 |
369 $ hg debugrequirements | 369 $ hg debugrequirements |
370 dotencode | 370 dotencode |
371 exp-sharesafe | 371 fncache |
372 fncache | 372 generaldelta |
373 generaldelta | 373 revlogv1 |
374 revlogv1 | 374 share-safe |
375 sparserevlog | 375 sparserevlog |
376 store | 376 store |
377 | 377 |
378 $ cat .hg/requires | 378 $ cat .hg/requires |
379 exp-sharesafe | 379 share-safe |
380 | 380 |
381 $ cat .hg/store/requires | 381 $ cat .hg/store/requires |
382 dotencode | 382 dotencode |
383 fncache | 383 fncache |
384 generaldelta | 384 generaldelta |
417 | 417 |
418 $ cat >> $HGRCPATH <<EOF | 418 $ cat >> $HGRCPATH <<EOF |
419 > [extensions] | 419 > [extensions] |
420 > share = | 420 > share = |
421 > [format] | 421 > [format] |
422 > exp-share-safe = False | 422 > use-share-safe = False |
423 > EOF | 423 > EOF |
424 | 424 |
425 $ hg debugupgraderepo -q | 425 $ hg debugupgraderepo -q |
426 requirements | 426 requirements |
427 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | 427 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store |
428 removed: exp-sharesafe | 428 removed: share-safe |
429 | 429 |
430 processed revlogs: | 430 processed revlogs: |
431 - all-filelogs | 431 - all-filelogs |
432 - changelog | 432 - changelog |
433 - manifest | 433 - manifest |
435 $ hg debugupgraderepo -q --run | 435 $ hg debugupgraderepo -q --run |
436 upgrade will perform the following actions: | 436 upgrade will perform the following actions: |
437 | 437 |
438 requirements | 438 requirements |
439 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | 439 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store |
440 removed: exp-sharesafe | 440 removed: share-safe |
441 | 441 |
442 processed revlogs: | 442 processed revlogs: |
443 - all-filelogs | 443 - all-filelogs |
444 - changelog | 444 - changelog |
445 - manifest | 445 - manifest |
505 | 505 |
506 | 506 |
507 | 507 |
508 Testing automatic upgrade of shares when config is set | 508 Testing automatic upgrade of shares when config is set |
509 | 509 |
510 $ hg debugupgraderepo -q --run --config format.exp-share-safe=True | 510 $ hg debugupgraderepo -q --run --config format.use-share-safe=True |
511 upgrade will perform the following actions: | 511 upgrade will perform the following actions: |
512 | 512 |
513 requirements | 513 requirements |
514 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | 514 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store |
515 added: exp-sharesafe | 515 added: share-safe |
516 | 516 |
517 processed revlogs: | 517 processed revlogs: |
518 - all-filelogs | 518 - all-filelogs |
519 - changelog | 519 - changelog |
520 - manifest | 520 - manifest |
521 | 521 |
522 repository upgraded to share safe mode, existing shares will still work in old non-safe mode. Re-share existing shares to use them in safe mode New shares will be created in safe mode. | 522 repository upgraded to share safe mode, existing shares will still work in old non-safe mode. Re-share existing shares to use them in safe mode New shares will be created in safe mode. |
523 $ hg debugrequirements | 523 $ hg debugrequirements |
524 dotencode | 524 dotencode |
525 exp-sharesafe | 525 fncache |
526 fncache | 526 generaldelta |
527 generaldelta | 527 revlogv1 |
528 revlogv1 | 528 share-safe |
529 sparserevlog | 529 sparserevlog |
530 store | 530 store |
531 $ hg log -GT "{node}: {desc}\n" -R ../nss-share | 531 $ hg log -GT "{node}: {desc}\n" -R ../nss-share |
532 abort: version mismatch: source uses share-safe functionality while the current share does not | 532 abort: version mismatch: source uses share-safe functionality while the current share does not |
533 [255] | 533 [255] |