diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -1375,7 +1375,7 @@ coreconfigitem( 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 @@ https://www.mercurial-scm.org/wiki/Missi 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 @@ class sharesafe(requirementformatvariant 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 requirements more consistent across repository and their +shares. This introduces a behavior change as shares from a repository using the +new format will also use their main repository's 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 == @@ -29,6 +37,10 @@ in conflicts while running `hg histedit` "base", and "histedit". They are now "already edited", "parent of current change", and "current change", respectively. +The use of `share-safe`, means shares (of new repositories) will also use their +main repository's configuration see the `Default Format Change` section +for details. + == Internal API Changes == The following functions have been removed: 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 @@ Check the basic files created: 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 @@ Poke at a clone: 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 @@ Non fncache repo: .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 @@ Prepare repo r1: 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 @@ Repos r1 and r2 should now contain hardl 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 @@ Repos r1 and r2 should now contain hardl 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 @@ Repo r3 should not be hardlinked: 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 @@ Create a non-inlined filelog in r3: 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 @@ Push to repo r1 should break up most har 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 @@ Committing a change to f1 in r1 must bre 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 @@ r4 has hardlinks in the working dir (not 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 @@ Update back to revision 12 in r4 should 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 @@ more there after 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 @@ store is setgid 00770 ./.hg/cache/ 00600 ./.hg/requires 00770 ./.hg/store/ + 00600 ./.hg/store/requires 00770 ./.hg/wcache/ $ mkdir dir @@ -92,6 +93,7 @@ new directories are setgid 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 @@ group can write everything 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 @@ group can still write everything 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 @@ creating 'local' persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -80,6 +81,7 @@ creating repo with format.usefncache=fal persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -96,6 +98,7 @@ creating repo with format.dotencode=fals persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -112,6 +115,7 @@ creating repo with format.dotencode=fals persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe store testonly-simplestore (reposimplestore !) @@ -232,6 +236,7 @@ creating 'local/sub/repo' persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -255,6 +260,7 @@ init should (for consistency with clone) persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -274,6 +280,7 @@ verify that clone also expand urls 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 @@ Test link+rename largefile codepath 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 @@ narrow clone a file, f10 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 @@ Making sure we have the correct set of r persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store treemanifest (tree !) @@ -86,6 +87,7 @@ Making sure store has the required files 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 @@ narrow clone a file, f10 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 @@ XXX: we should have a flag in `hg debugs 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 @@ downgrading 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 @@ upgrading 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 @@ check its contents separately. 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 @@ Shallow clone from full 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 @@ another repository of push/pull/clone on 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 @@ Requirements 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 @@ Enable sparse profile persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -45,6 +46,7 @@ Requirement for sparse added when sparse persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store testonly-simplestore (reposimplestore !) @@ -67,6 +69,7 @@ Requirement for sparse is removed when s 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 @@ New repo should not use SQLite by defaul persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store @@ -38,6 +39,7 @@ storage.new-repo-backend=sqlite is recog persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store @@ -59,6 +61,7 @@ Can force compression to zlib persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store @@ -75,6 +78,7 @@ Can force compression to none 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 @@ List of files accessed over HTTP: /.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 @@ List of files accessed over HTTP: /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 @@ List of files accessed over HTTP: /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 @@ List of files accessed over HTTP: /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 @@ An upgrade of a repository created with 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 @@ An upgrade of a repository created with 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 @@ An upgrade of a repository created with 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 @@ An upgrade of a repository created with [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 @@ An upgrade of a repository created with "repo": true }, { - "config": false, - "default": false, + "config": true, + "default": true, "name": "share-safe", - "repo": false + "repo": true }, { "config": true, @@ -210,8 +210,8 @@ An upgrade of a repository created with 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 @@ An upgrade of a repository created with $ 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 @@ An upgrade of a repository created with 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 @@ modern form of the option 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 @@ modern form of the option $ 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 @@ Various sub-optimal detections work 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 @@ Various sub-optimal detections work 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 @@ Various sub-optimal detections work [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 @@ Various sub-optimal detections work 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 @@ Various sub-optimal detections work 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 @@ Various sub-optimal detections work 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 @@ Various sub-optimal detections work $ 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 @@ Various sub-optimal detections work 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 @@ Various sub-optimal detections work 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 @@ Various sub-optimal detections work 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 @@ make sure we have a .d file 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 @@ make sure we have a .d file 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 @@ make sure we have a .d file 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 added to original requireme generaldelta persistent-nodemap (rust !) revlogv1 + share-safe store store directory has files we expect @@ -640,6 +657,7 @@ store directory has files we expect data fncache phaseroots + requires undo undo.backupfiles undo.phaseroots @@ -668,6 +686,7 @@ old store should be backed up data fncache phaseroots + requires undo undo.backup.fncache undo.backupfiles @@ -684,8 +703,8 @@ unless --no-backup is passed 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 @@ unless --no-backup is passed 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 @@ We can restrict optimization to some rev 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 @@ We can restrict optimization to some rev 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 @@ Check we can select negatively 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 @@ Check we can select negatively 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 @@ Check that we can select changelog only 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 @@ Check that we can select changelog only 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 @@ Check that we can select filelog only 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 @@ Check that we can select filelog only 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 @@ Check you can't skip revlog clone during 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 @@ Check you can't skip revlog clone during 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 @@ Check you can't skip revlog clone during 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 @@ Check you can't skip revlog clone during 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 @@ Check you can't skip revlog clone during 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 @@ store files with special filenames aren' 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 @@ store files with special filenames aren' 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 @@ Check upgrading a large file repository largefiles persistent-nodemap (rust !) revlogv1 + share-safe sparserevlog store @@ -1177,6 +1205,7 @@ Check upgrading a large file repository largefiles persistent-nodemap (rust !) revlogv1 + share-safe sparserevlog store @@ -1265,8 +1294,8 @@ repository config is taken in account 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 @@ repository config is taken in account 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 @@ Check upgrading a sparse-revlog reposito generaldelta persistent-nodemap (rust !) revlogv1 + share-safe store Check that we can add the sparse-revlog format requirement @@ -1335,8 +1366,8 @@ Check that we can add the sparse-revlog 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 @@ Check that we can add the sparse-revlog generaldelta persistent-nodemap (rust !) revlogv1 + share-safe sparserevlog store @@ -1358,8 +1390,8 @@ Check that we can remove the sparse-revl 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 @@ Check that we can remove the sparse-revl generaldelta persistent-nodemap (rust !) revlogv1 + share-safe store #if zstd @@ -1386,8 +1419,8 @@ upgrade 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 @@ upgrade 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 @@ upgrade persistent-nodemap (rust !) revlog-compression-zstd revlogv1 + share-safe sparserevlog store @@ -1428,8 +1462,8 @@ downgrade 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 @@ downgrade 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 @@ downgrade generaldelta persistent-nodemap (rust !) revlogv1 + share-safe sparserevlog store @@ -1473,8 +1508,8 @@ upgrade from hgrc 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 @@ upgrade from hgrc 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 @@ upgrade from hgrc persistent-nodemap (rust !) revlog-compression-zstd revlogv1 + share-safe sparserevlog store @@ -1521,9 +1557,9 @@ upgrade 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 @@ upgrade 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 @@ upgrade generaldelta persistent-nodemap (rust !) revlog-compression-zstd (zstd !) + share-safe sparserevlog store $ hg debugsidedata -c 0 @@ -1570,9 +1607,9 @@ downgrade 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 @@ downgrade 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 @@ downgrade persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 + share-safe sparserevlog store $ hg debugsidedata -c 0 @@ -1619,9 +1657,9 @@ upgrade from hgrc 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 @@ upgrade from hgrc 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 @@ upgrade from hgrc generaldelta persistent-nodemap (rust !) revlog-compression-zstd (zstd !) + share-safe sparserevlog store $ hg debugsidedata -c 0