4

I'm in need for using Mercurial on WinXP 32bit. The repositories were created on a different system (Win10) and are relatively new, so they require revlog-compression-zstd. Unfortunately, this seems not to be available on the WinXP, even with Mercurial 5.9.3. Whenever I try to run some hg command on the repos, I get the following error message: repository requires features unknown to this Mercurial: revlog-compression-zstd

Here's the output from hg debuginstall (sorry, it's a German Windows):

Y:\Litho_newRepo>hg debuginstall
checking encoding (cp1252)...
checking Python executable (C:\Programme\TortoiseHg\hg.exe)
checking Python implementation (CPython)
checking Python version (2.7.17)
Pr³fe Python lib (C:\Programme\TortoiseHg\lib\library.zip)...
checking Python security support (sni,tls1.0,tls1.1,tls1.2)
checking Rust extensions (missing)
checking Mercurial version (5.9.3)
checking Mercurial custom build ()
checking module policy (allow)
Pr³fe installierte Module (C:\Programme\TortoiseHg\lib\library.zip\mercurial)...

checking registered compression engines (bz2, bz2truncated, none, zlib, zstd)
checking available compression engines (bz2, bz2truncated, none, zlib)
checking available compression engines for wire protocol (zlib, bz2, none)
checking "re2" regexp engine (missing)
checking templates (C:\Programme\TortoiseHg\templates)...
checking default template (C:\Programme\TortoiseHg\templates\map-cmdline.default
)
checking commit editor... (notepad)
checking username (John Doe)
Keine Probleme gefunden

So zstd is registered, but not available. How would I enable it? The file mercurial.zstd.pyd exists in the lib directory of the Mercurial installation. I have even tried to copy a zstd.pyd from the local Python 2.7, but it does not seem to be picked up.

I've already tried downgrading the repo to remove the need for zstd, but it did not work, too. I did so by adding

[format]
revlog-compression-zstd = no

to hgrc and running hg debugupgraderepo --run afterwards, but it just told me nothing to do.

I'd appreciate any advice. Thank you.

Pastagod
  • 51
  • 2
  • 2
    Did you try `revlog-compression = zlib` in your configuration file? – slv Nov 25 '21 at 09:27
  • @slv That did the trick for the repo downgrade, thanks. So now I can at least work with it. – Pastagod Nov 26 '21 at 11:51
  • I've had luck figuring out config options [by checking the source](https://www.mercurial-scm.org/repo/hg/file/6.1/mercurial/configitems.py#l1325). Some docs are unclear, outdated, or incomplete, eg https://www.mercurial-scm.org/doc/hgrc.5.html#format (very outdated), https://www.mercurial-scm.org/wiki/RequiresFile#Known_requirements (also outdated), https://www.mercurial-scm.org/wiki/MissingRequirement#Repository_formats (a little outdated, not exact config options). The `hg help config.format` command and https://manpages.debian.org/testing/mercurial-common/hgrc.5.en.html#format are better. – ecm Mar 19 '22 at 09:25

0 Answers0