Mercurial > hg-stable
changeset 46851:3aa78f2aea48
revlog-compression: fix computation of engine availability
We don't just need the engine to be define, we need it to be available and able
to do be used for revlog compression. Without this change, `zstd` could be
selected as a viable option for repository creation on platform where it is not
available.
Differential Revision: https://phab.mercurial-scm.org/D10325
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 07 Apr 2021 12:15:28 +0200 |
parents | 9dfcadc2cabb |
children | fbfb1d6d8459 |
files | mercurial/localrepo.py mercurial/upgrade_utils/actions.py |
diffstat | 2 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Wed Apr 07 00:12:07 2021 +0200 +++ b/mercurial/localrepo.py Wed Apr 07 12:15:28 2021 +0200 @@ -3470,7 +3470,9 @@ compengines = ui.configlist(b'format', b'revlog-compression') for compengine in compengines: if compengine in util.compengines: - break + engine = util.compengines[compengine] + if engine.available() and engine.revlogheader(): + break else: raise error.Abort( _(
--- a/mercurial/upgrade_utils/actions.py Wed Apr 07 00:12:07 2021 +0200 +++ b/mercurial/upgrade_utils/actions.py Wed Apr 07 12:15:28 2021 +0200 @@ -428,7 +428,9 @@ # return the first valid value as the selection code would do for comp in compengines: if comp in util.compengines: - return comp + e = util.compengines[comp] + if e.available() and e.revlogheader(): + return comp # no valide compression found lets display it all for clarity return b','.join(compengines)