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]