On Sun, Mar 31, 2019 at 8:39 AM Pierre-Yves David < pierre-yves.da...@ens-lyon.org> wrote:
> # HG changeset patch > # User Pierre-Yves David <pierre-yves.da...@octobus.net> > # Date 1553725731 -3600 > # Wed Mar 27 23:28:51 2019 +0100 > # Node ID 28701199a78bdbab36aa422be0b4681941433823 > # Parent bcc4ba4c53b44dc6013b89f8c85b0f1967dfaebb > # EXP-Topic zstd-revlog > # Available At https://bitbucket.org/octobus/mercurial-devel/ > # hg pull https://bitbucket.org/octobus/mercurial-devel/ -r > 28701199a78b > compression: display compression level in debugformat > > Now that we have options to control the compression level, we teach `hg > debugformat` about them. This is a useful information when comparing > repositories. > > Note that we have no trace of the compression level used to store existing > deltas. Actually, it would even varies from one delta to another. So we > display > the currently set value. > > diff --git a/mercurial/upgrade.py b/mercurial/upgrade.py > --- a/mercurial/upgrade.py > +++ b/mercurial/upgrade.py > @@ -334,6 +334,39 @@ class compressionengine(formatvariant): > def fromconfig(cls, repo): > return repo.ui.config('experimental', 'format.compression') > > +@registerformatvariant > +class compressionlevel(formatvariant): > + name = 'compression-level' > + default = 'default' > + > + description = _('compression level') > + > + upgrademessage = _('revlog content will be recompressed') > + > + @classmethod > + def fromrepo(cls, repo): > + comp = compressionengine.fromrepo(repo) > + level = None > + if comp == 'zlib': > + level = repo.ui.configint('storage', 'revlog.zlib.level') > + elif comp == 'zstd': > + level = repo.ui.configint('storage', 'revlog.zstd.level') > + if level is None: > + return 'default' > + return str(level) > Changing this in flight to bytes(...) to appease Python 3. > + > + @classmethod > + def fromconfig(cls, repo): > + comp = compressionengine.fromconfig(repo) > + level = None > + if comp == 'zlib': > + level = repo.ui.configint('storage', 'revlog.zlib.level') > + elif comp == 'zstd': > + level = repo.ui.configint('storage', 'revlog.zstd.level') > + if level is None: > + return 'default' > + return str(level) > + > def finddeficiencies(repo): > """returns a list of deficiencies that the repo suffer from""" > deficiencies = [] > 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 > @@ -52,37 +52,41 @@ An upgrade of a repository created with > $ hg init empty > $ cd empty > $ hg debugformat > - format-variant repo > - fncache: yes > - dotencode: yes > - generaldelta: yes > - sparserevlog: yes > - plain-cl-delta: yes > - compression: zlib > + format-variant repo > + fncache: yes > + dotencode: yes > + generaldelta: yes > + sparserevlog: yes > + plain-cl-delta: yes > + compression: zlib > + compression-level: default > $ hg debugformat --verbose > - format-variant repo config default > - fncache: yes yes yes > - dotencode: yes yes yes > - generaldelta: yes yes yes > - sparserevlog: yes yes yes > - plain-cl-delta: yes yes yes > - compression: zlib zlib zlib > + format-variant repo config default > + fncache: yes yes yes > + dotencode: yes yes yes > + generaldelta: yes yes yes > + sparserevlog: yes yes yes > + plain-cl-delta: yes yes yes > + compression: zlib zlib zlib > + compression-level: default default default > $ hg debugformat --verbose --config format.usefncache=no > - format-variant repo config default > - fncache: yes no yes > - dotencode: yes no yes > - generaldelta: yes yes yes > - sparserevlog: yes yes yes > - plain-cl-delta: yes yes yes > - compression: zlib zlib zlib > + format-variant repo config default > + fncache: yes no yes > + dotencode: yes no yes > + generaldelta: yes yes yes > + sparserevlog: yes yes yes > + plain-cl-delta: yes yes yes > + compression: zlib zlib zlib > + compression-level: default default default > $ hg debugformat --verbose --config format.usefncache=no --color=debug > - format-variant repo config default > - [formatvariant.name.mismatchconfig|fncache: > ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| > no][formatvariant.default| yes] > - [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|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] > + format-variant repo config default > + [formatvariant.name.mismatchconfig|fncache: > ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| > no][formatvariant.default| yes] > + [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|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] > $ hg debugformat -Tjson > [ > { > @@ -120,6 +124,12 @@ An upgrade of a repository created with > "default": "zlib", > "name": "compression", > "repo": "zlib" > + }, > + { > + "config": "default", > + "default": "default", > + "name": "compression-level", > + "repo": "default" > } > ] > $ hg debugupgraderepo > @@ -207,37 +217,41 @@ Various sub-optimal detections work > > EOF > > $ hg debugformat > - format-variant repo > - fncache: no > - dotencode: no > - generaldelta: no > - sparserevlog: no > - plain-cl-delta: yes > - compression: zlib > + format-variant repo > + fncache: no > + dotencode: no > + generaldelta: no > + sparserevlog: no > + plain-cl-delta: yes > + compression: zlib > + compression-level: default > $ hg debugformat --verbose > - format-variant repo config default > - fncache: no yes yes > - dotencode: no yes yes > - generaldelta: no yes yes > - sparserevlog: no yes yes > - plain-cl-delta: yes yes yes > - compression: zlib zlib zlib > + format-variant repo config default > + fncache: no yes yes > + dotencode: no yes yes > + generaldelta: no yes yes > + sparserevlog: no yes yes > + plain-cl-delta: yes yes yes > + compression: zlib zlib zlib > + compression-level: default default default > $ hg debugformat --verbose --config format.usegeneraldelta=no > - format-variant repo config default > - fncache: no yes yes > - dotencode: no yes yes > - generaldelta: no no yes > - sparserevlog: no no yes > - plain-cl-delta: yes yes yes > - compression: zlib zlib zlib > + format-variant repo config default > + fncache: no yes yes > + dotencode: no yes yes > + generaldelta: no no yes > + sparserevlog: no no yes > + plain-cl-delta: yes yes yes > + compression: zlib zlib zlib > + compression-level: default default default > $ hg debugformat --verbose --config format.usegeneraldelta=no > --color=debug > - format-variant repo config default > - [formatvariant.name.mismatchconfig|fncache: > ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| > yes][formatvariant.default| yes] > - [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|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] > + format-variant repo config default > + [formatvariant.name.mismatchconfig|fncache: > ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| > yes][formatvariant.default| yes] > + [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|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] > $ hg debugupgraderepo > repository lacks features recommended by current config options: > >
_______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel