Mercurial > hg
changeset 43031:e16ca9fde7aa
upgrade: detect the side-data format variants
Note that for now we cannot upgrade/downgrade to it.
Differential Revision: https://phab.mercurial-scm.org/D6887
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 04 Sep 2019 02:43:17 +0200 |
parents | 827cb4fe62a3 |
children | a12a9af7536c |
files | mercurial/upgrade.py tests/test-lfs-serve.t tests/test-sidedata.t tests/test-upgrade-repo.t |
diffstat | 4 files changed, 155 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/upgrade.py Mon Sep 09 22:42:55 2019 +0200 +++ b/mercurial/upgrade.py Wed Sep 04 02:43:17 2019 +0200 @@ -317,6 +317,19 @@ 'better compression and faster exchange with server.') @registerformatvariant +class sidedata(requirementformatvariant): + name = 'sidedata' + + _requirement = localrepo.SIDEDATA_REQUIREMENT + + default = False + + description = _('Allows storage of extra data alongside a revision, ' + 'unlocking various caching options.') + + upgrademessage = _('Allows storage of extra data alongside a revision.') + +@registerformatvariant class removecldeltachain(formatvariant): name = 'plain-cl-delta'
--- a/tests/test-lfs-serve.t Mon Sep 09 22:42:55 2019 +0200 +++ b/tests/test-lfs-serve.t Wed Sep 04 02:43:17 2019 +0200 @@ -132,6 +132,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + beginning upgrade... repository locked and read-only creating temporary repository to stage migrated data: * (glob)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-sidedata.t Wed Sep 04 02:43:17 2019 +0200 @@ -0,0 +1,65 @@ +========================================================== +Test file dedicated to checking side-data related behavior +========================================================== + + +Check upgrade behavior +====================== + +Right now, sidedata has not upgrade support + +Check that we cannot upgrade to sidedata +---------------------------------------- + + $ hg init up-no-side-data --config format.use-side-data=no + $ hg debugformat -v -R up-no-side-data + format-variant repo config default + fncache: yes yes yes + dotencode: yes yes yes + generaldelta: yes yes yes + sparserevlog: yes yes yes + sidedata: no no no + plain-cl-delta: yes yes yes + compression: zlib zlib zlib + compression-level: default default default + $ hg debugformat -v -R up-no-side-data --config format.use-side-data=yes + format-variant repo config default + fncache: yes yes yes + dotencode: yes yes yes + generaldelta: yes yes yes + sparserevlog: yes yes yes + sidedata: no yes no + plain-cl-delta: yes yes yes + compression: zlib zlib zlib + compression-level: default default default + $ hg debugupgraderepo -R up-no-side-data --config format.use-side-data=yes + abort: cannot upgrade repository; do not support adding requirement: exp-sidedata-flag + [255] + +Check that we cannot upgrade to sidedata +---------------------------------------- + + $ hg init up-side-data --config format.use-side-data=yes + $ hg debugformat -v -R up-side-data + format-variant repo config default + fncache: yes yes yes + dotencode: yes yes yes + generaldelta: yes yes yes + sparserevlog: yes yes yes + sidedata: yes no no + plain-cl-delta: yes yes yes + compression: zlib zlib zlib + compression-level: default default default + $ hg debugformat -v -R up-side-data --config format.use-side-data=no + format-variant repo config default + fncache: yes yes yes + dotencode: yes yes yes + generaldelta: yes yes yes + sparserevlog: yes yes yes + sidedata: yes no no + plain-cl-delta: yes yes yes + compression: zlib zlib zlib + compression-level: default default default + $ hg debugupgraderepo -R up-side-data --config format.use-side-data=no + abort: cannot upgrade repository; requirement would be removed: exp-sidedata-flag + [255]
--- a/tests/test-upgrade-repo.t Mon Sep 09 22:42:55 2019 +0200 +++ b/tests/test-upgrade-repo.t Wed Sep 04 02:43:17 2019 +0200 @@ -57,6 +57,7 @@ dotencode: yes generaldelta: yes sparserevlog: yes + sidedata: no plain-cl-delta: yes compression: zlib compression-level: default @@ -66,6 +67,7 @@ dotencode: yes yes yes generaldelta: yes yes yes sparserevlog: yes yes yes + sidedata: no no no plain-cl-delta: yes yes yes compression: zlib zlib zlib compression-level: default default default @@ -75,6 +77,7 @@ dotencode: yes no yes generaldelta: yes yes yes sparserevlog: yes yes yes + sidedata: no no no plain-cl-delta: yes yes yes compression: zlib zlib zlib compression-level: default default default @@ -84,6 +87,7 @@ [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|sparserevlog: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] + [formatvariant.name.uptodate|sidedata: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib] [formatvariant.name.uptodate|compression-level:][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default] @@ -114,6 +118,12 @@ "repo": true }, { + "config": false, + "default": false, + "name": "sidedata", + "repo": false + }, + { "config": true, "default": true, "name": "plain-cl-delta", @@ -139,6 +149,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + additional optimizations are available by specifying "--optimize <name>": re-delta-parent @@ -163,6 +176,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + re-delta-parent deltas within internal storage will choose a new base revision if needed @@ -187,6 +203,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + re-delta-parent deltas within internal storage will choose a new base revision if needed @@ -222,6 +241,7 @@ dotencode: no generaldelta: no sparserevlog: no + sidedata: no plain-cl-delta: yes compression: zlib compression-level: default @@ -231,6 +251,7 @@ dotencode: no yes yes generaldelta: no yes yes sparserevlog: no yes yes + sidedata: no no no plain-cl-delta: yes yes yes compression: zlib zlib zlib compression-level: default default default @@ -240,6 +261,7 @@ dotencode: no yes yes generaldelta: no no yes sparserevlog: no no yes + sidedata: no no no plain-cl-delta: yes yes yes compression: zlib zlib zlib compression-level: default default default @@ -249,6 +271,7 @@ [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.mismatchdefault|sparserevlog: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes] + [formatvariant.name.uptodate|sidedata: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib] [formatvariant.name.uptodate|compression-level:][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default] @@ -286,6 +309,9 @@ 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. + sidedata + Allows storage of extra data alongside a revision. + additional optimizations are available by specifying "--optimize <name>": re-delta-parent @@ -334,6 +360,9 @@ 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. + sidedata + Allows storage of extra data alongside a revision. + additional optimizations are available by specifying "--optimize <name>": re-delta-parent @@ -360,6 +389,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + beginning upgrade... repository locked and read-only creating temporary repository to stage migrated data: $TESTTMP/modern/.hg/upgrade.* (glob) @@ -411,6 +443,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 + sidedata + Allows storage of extra data alongside a revision. + beginning upgrade... repository locked and read-only creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) @@ -507,6 +542,9 @@ 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. + sidedata + Allows storage of extra data alongside a revision. + beginning upgrade... repository locked and read-only creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) @@ -541,6 +579,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + re-delta-parent deltas within internal storage will choose a new base revision if needed @@ -614,6 +655,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + re-delta-parent deltas within internal storage will choose a new base revision if needed @@ -660,6 +704,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + re-delta-parent deltas within internal storage will choose a new base revision if needed @@ -706,6 +753,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + re-delta-parent deltas within internal storage will choose a new base revision if needed @@ -757,6 +807,9 @@ preserved: dotencode, fncache, generaldelta, revlogv1, store removed: sparserevlog + sidedata + Allows storage of extra data alongside a revision. + re-delta-parent deltas within internal storage will choose a new base revision if needed @@ -809,6 +862,9 @@ 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. + sidedata + Allows storage of extra data alongside a revision. + re-delta-parent deltas within internal storage will choose a new base revision if needed @@ -863,6 +919,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + beginning upgrade... repository locked and read-only creating temporary repository to stage migrated data: $TESTTMP/store-filenames/.hg/upgrade.* (glob) @@ -894,6 +953,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + re-delta-fulladd each revision will be added as new content to the internal storage; this will likely drastically slow down execution time, but some extensions might need it @@ -958,6 +1020,9 @@ requirements preserved: dotencode, fncache, generaldelta, largefiles, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + beginning upgrade... repository locked and read-only creating temporary repository to stage migrated data: $TESTTMP/largefilesrepo/.hg/upgrade.* (glob) @@ -1011,6 +1076,9 @@ requirements preserved: dotencode, fncache, generaldelta, largefiles, lfs, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + beginning upgrade... repository locked and read-only creating temporary repository to stage migrated data: $TESTTMP/largefilesrepo/.hg/upgrade.* (glob) @@ -1106,6 +1174,9 @@ requirements preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + sidedata + Allows storage of extra data alongside a revision. + re-delta-all deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time @@ -1197,6 +1268,7 @@ dotencode: yes yes yes generaldelta: yes yes yes sparserevlog: yes yes yes + sidedata: no no no plain-cl-delta: yes yes yes compression: zstd zlib zlib compression-level: default default default @@ -1218,6 +1290,7 @@ dotencode: yes yes yes generaldelta: yes yes yes sparserevlog: yes yes yes + sidedata: no no no plain-cl-delta: yes yes yes compression: zlib zlib zlib compression-level: default default default @@ -1242,6 +1315,7 @@ dotencode: yes yes yes generaldelta: yes yes yes sparserevlog: yes yes yes + sidedata: no no no plain-cl-delta: yes yes yes compression: zstd zstd zlib compression-level: default default default