diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -1375,7 +1375,7 @@ coreconfigitem( b'format', b'use-share-safe', - default=False, + default=True, ) coreconfigitem( b'format', diff --git a/mercurial/helptext/config.txt b/mercurial/helptext/config.txt --- a/mercurial/helptext/config.txt +++ b/mercurial/helptext/config.txt @@ -998,7 +998,7 @@ Introduced in Mercurial 5.7. - Disabled by default. + Enabled by default in Mercurial 6.1. ``usestore`` Enable or disable the "store" repository format which improves diff --git a/mercurial/upgrade_utils/actions.py b/mercurial/upgrade_utils/actions.py --- a/mercurial/upgrade_utils/actions.py +++ b/mercurial/upgrade_utils/actions.py @@ -243,7 +243,7 @@ name = b'share-safe' _requirement = requirements.SHARESAFE_REQUIREMENT - default = False + default = True description = _( b'old shared repositories do not share source repository ' diff --git a/relnotes/next b/relnotes/next --- a/relnotes/next +++ b/relnotes/next @@ -4,7 +4,15 @@ == Default Format Change == These changes affects newly created repositories (or new clone) done with -Mercurial XXX. +Mercurial 6.1. + +The `share-safe` format variant is now enabled by default. It makes +configuration and repository more consistenty across repository and their +shares. This introduce a behavior changes as share from repository using the +new repository will also use their main repository configuration. + +See `hg help config.format.use-share-safe` for details about the feature and +the available options for auto-upgrading existing shares. == New Experimental Features == @@ -15,6 +23,9 @@ == Backwards Compatibility Changes == +The use of `share-safe`, mean shares (of new repositories) will see the +`Default Format Change` section for details. + == Internal API Changes == diff --git a/tests/test-empty.t b/tests/test-empty.t --- a/tests/test-empty.t +++ b/tests/test-empty.t @@ -25,9 +25,10 @@ store wcache -Should be empty: +Should be empty (except for the "basic" requires): $ ls .hg/store + requires Poke at a clone: @@ -51,8 +52,9 @@ store wcache -Should be empty: +Should be empty (except for the "basic" requires): $ ls .hg/store + requires $ cd .. diff --git a/tests/test-fncache.t b/tests/test-fncache.t --- a/tests/test-fncache.t +++ b/tests/test-fncache.t @@ -153,6 +153,7 @@ .hg/store/data/tst.d.hg .hg/store/data/tst.d.hg/_foo.i .hg/store/phaseroots + .hg/store/requires .hg/store/undo .hg/store/undo.backupfiles .hg/store/undo.phaseroots diff --git a/tests/test-hardlinks.t b/tests/test-hardlinks.t --- a/tests/test-hardlinks.t +++ b/tests/test-hardlinks.t @@ -52,6 +52,7 @@ 1 r1/.hg/store/data/f1.i 1 r1/.hg/store/fncache (repofncache !) 1 r1/.hg/store/phaseroots + 1 r1/.hg/store/requires 1 r1/.hg/store/undo 1 r1/.hg/store/undo.backup.fncache (repofncache !) 1 r1/.hg/store/undo.backupfiles @@ -93,6 +94,7 @@ 2 r1/.hg/store/data/f1.i 1 r1/.hg/store/fncache (repofncache !) 1 r1/.hg/store/phaseroots + 1 r1/.hg/store/requires 1 r1/.hg/store/undo 1 r1/.hg/store/undo.backup.fncache (repofncache !) 1 r1/.hg/store/undo.backupfiles @@ -104,6 +106,7 @@ 2 r2/.hg/store/data/d1/f2.i 2 r2/.hg/store/data/f1.i 1 r2/.hg/store/fncache (repofncache !) + 1 r2/.hg/store/requires Repo r3 should not be hardlinked: @@ -114,6 +117,7 @@ 1 r3/.hg/store/data/f1.i 1 r3/.hg/store/fncache (repofncache !) 1 r3/.hg/store/phaseroots + 1 r3/.hg/store/requires 1 r3/.hg/store/undo 1 r3/.hg/store/undo.backupfiles 1 r3/.hg/store/undo.phaseroots @@ -140,6 +144,7 @@ 1 r3/.hg/store/data/f1.i 1 r3/.hg/store/fncache (repofncache !) 1 r3/.hg/store/phaseroots + 1 r3/.hg/store/requires 1 r3/.hg/store/undo 1 r3/.hg/store/undo.backup.fncache (repofncache !) 1 r3/.hg/store/undo.backup.phaseroots @@ -172,6 +177,7 @@ 1 r2/.hg/store/data/d1/f2.i 2 r2/.hg/store/data/f1.i [12] r2/\.hg/store/fncache (re) (repofncache !) + 1 r2/.hg/store/requires #if hardlink-whitelisted repofncache $ nlinksdir r2/.hg/store/fncache @@ -202,6 +208,7 @@ 1 r2/.hg/store/data/d1/f2.i 1 r2/.hg/store/data/f1.i 1 r2/.hg/store/fncache (repofncache !) + 1 r2/.hg/store/requires #if hardlink-whitelisted repofncache $ nlinksdir r2/.hg/store/fncache @@ -261,6 +268,7 @@ 2 r4/.hg/store/data/f3.i 2 r4/.hg/store/fncache (repofncache !) 2 r4/.hg/store/phaseroots + 2 r4/.hg/store/requires 2 r4/.hg/store/undo 2 r4/.hg/store/undo.backup.fncache (repofncache !) 2 r4/.hg/store/undo.backup.phaseroots @@ -318,6 +326,7 @@ 2 r4/.hg/store/data/f3.i 2 r4/.hg/store/fncache 2 r4/.hg/store/phaseroots + 2 r4/.hg/store/requires 2 r4/.hg/store/undo 2 r4/.hg/store/undo.backup.fncache (repofncache !) 2 r4/.hg/store/undo.backup.phaseroots diff --git a/tests/test-hook.t b/tests/test-hook.t --- a/tests/test-hook.t +++ b/tests/test-hook.t @@ -464,6 +464,7 @@ fncache (repofncache !) journal.phaseroots phaseroots + requires undo undo.backup.fncache (repofncache !) undo.backupfiles diff --git a/tests/test-inherit-mode.t b/tests/test-inherit-mode.t --- a/tests/test-inherit-mode.t +++ b/tests/test-inherit-mode.t @@ -54,6 +54,7 @@ 00770 ./.hg/cache/ 00600 ./.hg/requires 00770 ./.hg/store/ + 00600 ./.hg/store/requires 00770 ./.hg/wcache/ $ mkdir dir @@ -92,6 +93,7 @@ 00660 ./.hg/store/data/foo/index (reposimplestore !) 00660 ./.hg/store/fncache (repofncache !) 00660 ./.hg/store/phaseroots + 00600 ./.hg/store/requires 00660 ./.hg/store/undo 00660 ./.hg/store/undo.backupfiles 00660 ./.hg/store/undo.phaseroots @@ -121,6 +123,7 @@ 00770 ../push/.hg/cache/ 00660 ../push/.hg/requires 00770 ../push/.hg/store/ + 00660 ../push/.hg/store/requires 00770 ../push/.hg/wcache/ $ umask 077 @@ -152,6 +155,7 @@ 00660 ../push/.hg/store/data/foo/b80de5d138758541c5f05265ad144ab9fa86d1db (reposimplestore !) 00660 ../push/.hg/store/data/foo/index (reposimplestore !) 00660 ../push/.hg/store/fncache (repofncache !) + 00660 ../push/.hg/store/requires 00660 ../push/.hg/store/undo 00660 ../push/.hg/store/undo.backupfiles 00660 ../push/.hg/store/undo.phaseroots diff --git a/tests/test-init.t b/tests/test-init.t --- a/tests/test-init.t +++ b/tests/test-init.t @@ -25,6 +25,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -80,6 +81,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -96,6 +98,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -112,6 +115,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe store testonly-simplestore (reposimplestore !) @@ -232,6 +236,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -255,6 +260,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -274,6 +280,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) diff --git a/tests/test-lfconvert.t b/tests/test-lfconvert.t --- a/tests/test-lfconvert.t +++ b/tests/test-lfconvert.t @@ -103,6 +103,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) diff --git a/tests/test-narrow-clone-no-ellipsis.t b/tests/test-narrow-clone-no-ellipsis.t --- a/tests/test-narrow-clone-no-ellipsis.t +++ b/tests/test-narrow-clone-no-ellipsis.t @@ -30,6 +30,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) diff --git a/tests/test-narrow-clone-stream.t b/tests/test-narrow-clone-stream.t --- a/tests/test-narrow-clone-stream.t +++ b/tests/test-narrow-clone-stream.t @@ -72,6 +72,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store treemanifest (tree !) @@ -86,6 +87,7 @@ fncache (flat-fncache !) meta (tree !) narrowspec + requires undo undo.backupfiles undo.narrowspec diff --git a/tests/test-narrow-clone.t b/tests/test-narrow-clone.t --- a/tests/test-narrow-clone.t +++ b/tests/test-narrow-clone.t @@ -46,6 +46,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) diff --git a/tests/test-narrow-sparse.t b/tests/test-narrow-sparse.t --- a/tests/test-narrow-sparse.t +++ b/tests/test-narrow-sparse.t @@ -65,6 +65,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store treemanifest (tree !) diff --git a/tests/test-persistent-nodemap.t b/tests/test-persistent-nodemap.t --- a/tests/test-persistent-nodemap.t +++ b/tests/test-persistent-nodemap.t @@ -784,7 +784,7 @@ dirstate-v2: no no no dotencode: yes yes yes generaldelta: yes yes yes - share-safe: yes yes no + share-safe: yes yes yes sparserevlog: yes yes yes persistent-nodemap: yes no no copies-sdc: no no no @@ -828,7 +828,7 @@ dirstate-v2: no no no dotencode: yes yes yes generaldelta: yes yes yes - share-safe: yes yes no + share-safe: yes yes yes sparserevlog: yes yes yes persistent-nodemap: no yes no copies-sdc: no no no diff --git a/tests/test-remotefilelog-clone-tree.t b/tests/test-remotefilelog-clone-tree.t --- a/tests/test-remotefilelog-clone-tree.t +++ b/tests/test-remotefilelog-clone-tree.t @@ -34,6 +34,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store treemanifest @@ -78,6 +79,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store treemanifest @@ -122,6 +124,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store treemanifest diff --git a/tests/test-remotefilelog-clone.t b/tests/test-remotefilelog-clone.t --- a/tests/test-remotefilelog-clone.t +++ b/tests/test-remotefilelog-clone.t @@ -31,6 +31,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store @@ -68,6 +69,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store $ ls .hg/store/data @@ -120,5 +122,6 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store diff --git a/tests/test-remotefilelog-log.t b/tests/test-remotefilelog-log.t --- a/tests/test-remotefilelog-log.t +++ b/tests/test-remotefilelog-log.t @@ -34,6 +34,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store diff --git a/tests/test-requires.t b/tests/test-requires.t --- a/tests/test-requires.t +++ b/tests/test-requires.t @@ -57,6 +57,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store $ hg -R supported status diff --git a/tests/test-rhg.t b/tests/test-rhg.t --- a/tests/test-rhg.t +++ b/tests/test-rhg.t @@ -243,6 +243,7 @@ persistent-nodemap revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store diff --git a/tests/test-sparse-requirement.t b/tests/test-sparse-requirement.t --- a/tests/test-sparse-requirement.t +++ b/tests/test-sparse-requirement.t @@ -24,6 +24,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -45,6 +46,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -67,6 +69,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) diff --git a/tests/test-sqlitestore.t b/tests/test-sqlitestore.t --- a/tests/test-sqlitestore.t +++ b/tests/test-sqlitestore.t @@ -21,6 +21,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store @@ -38,6 +39,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store @@ -59,6 +61,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store @@ -75,6 +78,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store diff --git a/tests/test-static-http.t b/tests/test-static-http.t --- a/tests/test-static-http.t +++ b/tests/test-static-http.t @@ -240,6 +240,7 @@ /.hg/store/data/a.i /.hg/store/data/~2ehgsub.i (py37 !) /.hg/store/data/~2ehgsubstate.i (py37 !) + /.hg/store/requires /notarepo/.hg/00changelog.i /notarepo/.hg/requires /remote-with-names/.hg/bookmarks @@ -255,6 +256,7 @@ /remote-with-names/.hg/store/data/%7E2ehgtags.i (no-py37 !) /remote-with-names/.hg/store/data/foo.i /remote-with-names/.hg/store/data/~2ehgtags.i (py37 !) + /remote-with-names/.hg/store/requires /remote/.hg/bookmarks /remote/.hg/bookmarks.current /remote/.hg/cache/branch2-base @@ -274,12 +276,14 @@ /remote/.hg/store/data/quux.i /remote/.hg/store/data/~2edotfile%20with%20spaces.i (py37 !) /remote/.hg/store/data/~2ehgtags.i (py37 !) + /remote/.hg/store/requires /remotempty/.hg/bookmarks /remotempty/.hg/bookmarks.current /remotempty/.hg/dirstate /remotempty/.hg/requires /remotempty/.hg/store/00changelog.i /remotempty/.hg/store/00manifest.i + /remotempty/.hg/store/requires /sub/.hg/bookmarks /sub/.hg/bookmarks.current /sub/.hg/cache/hgtagsfnodes1 @@ -290,3 +294,4 @@ /sub/.hg/store/data/%7E2ehgtags.i (no-py37 !) /sub/.hg/store/data/test.i /sub/.hg/store/data/~2ehgtags.i (py37 !) + /sub/.hg/store/requires diff --git a/tests/test-upgrade-repo.t b/tests/test-upgrade-repo.t --- a/tests/test-upgrade-repo.t +++ b/tests/test-upgrade-repo.t @@ -60,7 +60,7 @@ dirstate-v2: no dotencode: yes generaldelta: yes - share-safe: no + share-safe: yes sparserevlog: yes persistent-nodemap: no (no-rust !) persistent-nodemap: yes (rust !) @@ -76,7 +76,7 @@ dirstate-v2: no no no dotencode: yes yes yes generaldelta: yes yes yes - share-safe: no no no + share-safe: yes yes yes sparserevlog: yes yes yes persistent-nodemap: no no no (no-rust !) persistent-nodemap: yes yes no (rust !) @@ -93,7 +93,7 @@ dirstate-v2: no no no dotencode: yes no yes generaldelta: yes yes yes - share-safe: no no no + share-safe: yes yes yes sparserevlog: yes yes yes persistent-nodemap: no no no (no-rust !) persistent-nodemap: yes yes no (rust !) @@ -110,7 +110,7 @@ [formatvariant.name.uptodate|dirstate-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes] [formatvariant.name.uptodate|generaldelta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] - [formatvariant.name.uptodate|share-safe: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] + [formatvariant.name.uptodate|share-safe: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] [formatvariant.name.uptodate|sparserevlog: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] (no-rust !) [formatvariant.name.mismatchdefault|persistent-nodemap:][formatvariant.repo.mismatchdefault| yes][formatvariant.config.special| yes][formatvariant.default| no] (rust !) @@ -148,10 +148,10 @@ "repo": true }, { - "config": false, - "default": false, + "config": true, + "default": true, "name": "share-safe", - "repo": false + "repo": true }, { "config": true, @@ -210,8 +210,8 @@ performing an upgrade with "--run" will make the following changes: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) no revlogs to process @@ -232,8 +232,8 @@ $ hg debugupgraderepo --quiet requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) no revlogs to process @@ -245,8 +245,8 @@ performing an upgrade with "--run" will make the following changes: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) optimisations: re-delta-parent @@ -277,8 +277,8 @@ performing an upgrade with "--run" will make the following changes: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) optimisations: re-delta-parent @@ -303,8 +303,8 @@ $ hg debugupgrade --optimize re-delta-parent --quiet requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) optimisations: re-delta-parent @@ -349,7 +349,7 @@ dirstate-v2: no no no dotencode: no yes yes generaldelta: no yes yes - share-safe: no no no + share-safe: no yes yes sparserevlog: no yes yes persistent-nodemap: no no no (no-rust !) persistent-nodemap: no yes no (rust !) @@ -366,7 +366,7 @@ dirstate-v2: no no no dotencode: no yes yes generaldelta: no no yes - share-safe: no no no + share-safe: no yes yes sparserevlog: no no yes persistent-nodemap: no no no (no-rust !) persistent-nodemap: no yes no (rust !) @@ -383,7 +383,7 @@ [formatvariant.name.uptodate|dirstate-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] [formatvariant.name.mismatchdefault|generaldelta: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes] - [formatvariant.name.uptodate|share-safe: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] + [formatvariant.name.mismatchconfig|share-safe: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] [formatvariant.name.mismatchdefault|sparserevlog: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes] [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] (no-rust !) [formatvariant.name.mismatchconfig|persistent-nodemap:][formatvariant.repo.mismatchconfig| no][formatvariant.config.special| yes][formatvariant.default| no] (rust !) @@ -410,6 +410,9 @@ generaldelta deltas within internal storage are unable to choose optimal revisions; repository is larger and slower than it could be; interaction with other repositories may require extra network and CPU resources, making "hg push" and "hg pull" slower + share-safe + old shared repositories do not share source repository requirements and config. This leads to various problems when the source repository format is upgraded or some new extensions are enabled. + sparserevlog in order to limit disk reading and memory usage on older version, the span of a delta chain from its root to its end is limited, whatever the relevant data in this span. This can severly limit Mercurial ability to build good chain of delta resulting is much more storage space being taken and limit reusability of on disk delta during exchange. @@ -421,8 +424,8 @@ requirements preserved: revlogv1, store - added: dotencode, fncache, generaldelta, sparserevlog (no-rust !) - added: dotencode, fncache, generaldelta, persistent-nodemap, sparserevlog (rust !) + added: dotencode, fncache, generaldelta, share-safe, sparserevlog (no-rust !) + added: dotencode, fncache, generaldelta, persistent-nodemap, share-safe, sparserevlog (rust !) fncache repository will be more resilient to storing certain paths and performance of certain operations should be improved @@ -433,6 +436,9 @@ generaldelta repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster + share-safe + Upgrades a repository to share-safe format so that future shares of this repository share its requirements and configs. + sparserevlog Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server. @@ -461,8 +467,8 @@ $ hg debugupgraderepo --quiet requirements preserved: revlogv1, store - added: dotencode, fncache, generaldelta, sparserevlog (no-rust !) - added: dotencode, fncache, generaldelta, persistent-nodemap, sparserevlog (rust !) + added: dotencode, fncache, generaldelta, share-safe, sparserevlog (no-rust !) + added: dotencode, fncache, generaldelta, persistent-nodemap, share-safe, sparserevlog (rust !) processed revlogs: - all-filelogs @@ -483,6 +489,9 @@ generaldelta deltas within internal storage are unable to choose optimal revisions; repository is larger and slower than it could be; interaction with other repositories may require extra network and CPU resources, making "hg push" and "hg pull" slower + share-safe + old shared repositories do not share source repository requirements and config. This leads to various problems when the source repository format is upgraded or some new extensions are enabled. + sparserevlog in order to limit disk reading and memory usage on older version, the span of a delta chain from its root to its end is limited, whatever the relevant data in this span. This can severly limit Mercurial ability to build good chain of delta resulting is much more storage space being taken and limit reusability of on disk delta during exchange. @@ -499,8 +508,8 @@ requirements preserved: revlogv1, store - added: fncache, generaldelta, sparserevlog (no-rust !) - added: fncache, generaldelta, persistent-nodemap, sparserevlog (rust !) + added: fncache, generaldelta, share-safe, sparserevlog (no-rust !) + added: fncache, generaldelta, persistent-nodemap, share-safe, sparserevlog (rust !) fncache repository will be more resilient to storing certain paths and performance of certain operations should be improved @@ -508,6 +517,9 @@ generaldelta repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster + share-safe + Upgrades a repository to share-safe format so that future shares of this repository share its requirements and configs. + sparserevlog Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server. @@ -576,8 +588,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, revlogv1, store (no-rust !) - preserved: dotencode, fncache, persistent-nodemap, revlogv1, store (rust !) + preserved: dotencode, fncache, revlogv1, share-safe, store (no-rust !) + preserved: dotencode, fncache, persistent-nodemap, revlogv1, share-safe, store (rust !) added: generaldelta generaldelta @@ -602,6 +614,7 @@ finished migrating 3 changelog revisions; change in size: 0 bytes finished migrating 9 total revisions; total change in store size: -17 bytes copying phaseroots + copying requires data fully upgraded in a temporary repository marking source repository as being upgraded; clients will be unable to read from repository starting in-place swap of repository data @@ -616,11 +629,14 @@ Original requirements backed up $ cat .hg/upgradebackup.*/requires + share-safe + $ cat .hg/upgradebackup.*/store/requires dotencode fncache persistent-nodemap (rust !) revlogv1 store + upgradeinprogress generaldelta added to original requirements files @@ -630,6 +646,7 @@ generaldelta persistent-nodemap (rust !) revlogv1 + share-safe store store directory has files we expect @@ -640,6 +657,7 @@ data fncache phaseroots + requires undo undo.backupfiles undo.phaseroots @@ -668,6 +686,7 @@ data fncache phaseroots + requires undo undo.backup.fncache undo.backupfiles @@ -684,8 +703,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) added: sparserevlog sparserevlog @@ -710,6 +729,7 @@ finished migrating 3 changelog revisions; change in size: 0 bytes finished migrating 9 total revisions; total change in store size: 0 bytes copying phaseroots + copying requires data fully upgraded in a temporary repository marking source repository as being upgraded; clients will be unable to read from repository starting in-place swap of repository data @@ -726,8 +746,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) optimisations: re-delta-parent @@ -756,6 +776,7 @@ finished migrating 3 changelog revisions; change in size: 0 bytes finished migrating 9 total revisions; total change in store size: 0 bytes copying phaseroots + copying requires data fully upgraded in a temporary repository marking source repository as being upgraded; clients will be unable to read from repository starting in-place swap of repository data @@ -804,8 +825,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) optimisations: re-delta-parent @@ -835,6 +856,7 @@ finished migrating 3 changelog revisions; change in size: 0 bytes finished migrating 9 total revisions; total change in store size: 0 bytes copying phaseroots + copying requires data fully upgraded in a temporary repository marking source repository as being upgraded; clients will be unable to read from repository starting in-place swap of repository data @@ -855,8 +877,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) optimisations: re-delta-parent @@ -885,6 +907,7 @@ finished migrating 3 changelog revisions; change in size: 0 bytes finished migrating 9 total revisions; total change in store size: 0 bytes copying phaseroots + copying requires data fully upgraded in a temporary repository marking source repository as being upgraded; clients will be unable to read from repository starting in-place swap of repository data @@ -905,8 +928,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) optimisations: re-delta-parent @@ -935,6 +958,7 @@ finished migrating 3 changelog revisions; change in size: 0 bytes finished migrating 9 total revisions; total change in store size: 0 bytes copying phaseroots + copying requires data fully upgraded in a temporary repository marking source repository as being upgraded; clients will be unable to read from repository starting in-place swap of repository data @@ -958,8 +982,8 @@ warning: ignoring --no-manifest, as upgrade is changing: sparserevlog requirements - preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) removed: sparserevlog optimisations: re-delta-parent @@ -976,8 +1000,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) removed: sparserevlog optimisations: re-delta-parent @@ -1009,6 +1033,7 @@ finished migrating 3 changelog revisions; change in size: 0 bytes finished migrating 9 total revisions; total change in store size: 0 bytes copying phaseroots + copying requires data fully upgraded in a temporary repository marking source repository as being upgraded; clients will be unable to read from repository starting in-place swap of repository data @@ -1033,8 +1058,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) added: sparserevlog optimisations: re-delta-parent @@ -1069,6 +1094,7 @@ finished migrating 3 changelog revisions; change in size: 0 bytes finished migrating 9 total revisions; total change in store size: 0 bytes copying phaseroots + copying requires data fully upgraded in a temporary repository marking source repository as being upgraded; clients will be unable to read from repository starting in-place swap of repository data @@ -1099,8 +1125,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) optimisations: re-delta-fulladd @@ -1127,6 +1153,7 @@ finished migrating 3 total revisions; total change in store size: 0 bytes copying .XX_special_filename copying phaseroots + copying requires data fully upgraded in a temporary repository marking source repository as being upgraded; clients will be unable to read from repository starting in-place swap of repository data @@ -1165,6 +1192,7 @@ largefiles persistent-nodemap (rust !) revlogv1 + share-safe sparserevlog store @@ -1177,6 +1205,7 @@ largefiles persistent-nodemap (rust !) revlogv1 + share-safe sparserevlog store @@ -1265,8 +1294,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) optimisations: re-delta-all @@ -1292,6 +1321,7 @@ finished migrating 3 changelog revisions; change in size: 0 bytes finished migrating 9 total revisions; total change in store size: -9 bytes copying phaseroots + copying requires data fully upgraded in a temporary repository marking source repository as being upgraded; clients will be unable to read from repository starting in-place swap of repository data @@ -1328,6 +1358,7 @@ generaldelta persistent-nodemap (rust !) revlogv1 + share-safe store Check that we can add the sparse-revlog format requirement @@ -1335,8 +1366,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) added: sparserevlog processed revlogs: @@ -1350,6 +1381,7 @@ generaldelta persistent-nodemap (rust !) revlogv1 + share-safe sparserevlog store @@ -1358,8 +1390,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) removed: sparserevlog processed revlogs: @@ -1373,6 +1405,7 @@ generaldelta persistent-nodemap (rust !) revlogv1 + share-safe store #if zstd @@ -1386,8 +1419,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) added: revlog-compression-zstd, sparserevlog processed revlogs: @@ -1401,7 +1434,7 @@ dirstate-v2: no no no dotencode: yes yes yes generaldelta: yes yes yes - share-safe: no no no + share-safe: yes yes yes sparserevlog: yes yes yes persistent-nodemap: no no no (no-rust !) persistent-nodemap: yes yes no (rust !) @@ -1419,6 +1452,7 @@ persistent-nodemap (rust !) revlog-compression-zstd revlogv1 + share-safe sparserevlog store @@ -1428,8 +1462,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) removed: revlog-compression-zstd processed revlogs: @@ -1443,7 +1477,7 @@ dirstate-v2: no no no dotencode: yes yes yes generaldelta: yes yes yes - share-safe: no no no + share-safe: yes yes yes sparserevlog: yes yes yes persistent-nodemap: no no no (no-rust !) persistent-nodemap: yes yes no (rust !) @@ -1460,6 +1494,7 @@ generaldelta persistent-nodemap (rust !) revlogv1 + share-safe sparserevlog store @@ -1473,8 +1508,8 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) added: revlog-compression-zstd processed revlogs: @@ -1488,7 +1523,7 @@ dirstate-v2: no no no dotencode: yes yes yes generaldelta: yes yes yes - share-safe: no no no + share-safe: yes yes yes sparserevlog: yes yes yes persistent-nodemap: no no no (no-rust !) persistent-nodemap: yes yes no (rust !) @@ -1506,6 +1541,7 @@ persistent-nodemap (rust !) revlog-compression-zstd revlogv1 + share-safe sparserevlog store @@ -1521,9 +1557,9 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, store (no-zstd !) - preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, sparserevlog, store (zstd no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, share-safe, store (no-zstd !) + preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, share-safe, sparserevlog, store (zstd no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, share-safe, sparserevlog, store (rust !) removed: revlogv1 added: exp-revlogv2.2 (zstd !) added: exp-revlogv2.2, sparserevlog (no-zstd !) @@ -1539,7 +1575,7 @@ dirstate-v2: no no no dotencode: yes yes yes generaldelta: yes yes yes - share-safe: no no no + share-safe: yes yes yes sparserevlog: yes yes yes persistent-nodemap: no no no (no-rust !) persistent-nodemap: yes yes no (rust !) @@ -1557,6 +1593,7 @@ generaldelta persistent-nodemap (rust !) revlog-compression-zstd (zstd !) + share-safe sparserevlog store $ hg debugsidedata -c 0 @@ -1570,9 +1607,9 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, sparserevlog, store (no-zstd !) - preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, sparserevlog, store (zstd no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, share-safe, sparserevlog, store (no-zstd !) + preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, share-safe, sparserevlog, store (zstd no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, share-safe, sparserevlog, store (rust !) removed: exp-revlogv2.2 added: revlogv1 @@ -1587,7 +1624,7 @@ dirstate-v2: no no no dotencode: yes yes yes generaldelta: yes yes yes - share-safe: no no no + share-safe: yes yes yes sparserevlog: yes yes yes persistent-nodemap: no no no (no-rust !) persistent-nodemap: yes yes no (rust !) @@ -1605,6 +1642,7 @@ persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store $ hg debugsidedata -c 0 @@ -1619,9 +1657,9 @@ upgrade will perform the following actions: requirements - preserved: dotencode, fncache, generaldelta, sparserevlog, store (no-zstd !) - preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, sparserevlog, store (zstd no-rust !) - preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, sparserevlog, store (rust !) + preserved: dotencode, fncache, generaldelta, share-safe, sparserevlog, store (no-zstd !) + preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, share-safe, sparserevlog, store (zstd no-rust !) + preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, share-safe, sparserevlog, store (rust !) removed: revlogv1 added: exp-revlogv2.2 @@ -1636,7 +1674,7 @@ dirstate-v2: no no no dotencode: yes yes yes generaldelta: yes yes yes - share-safe: no no no + share-safe: yes yes yes sparserevlog: yes yes yes persistent-nodemap: no no no (no-rust !) persistent-nodemap: yes yes no (rust !) @@ -1654,6 +1692,7 @@ generaldelta persistent-nodemap (rust !) revlog-compression-zstd (zstd !) + share-safe sparserevlog store $ hg debugsidedata -c 0