Hey there!

We had some fun incident over at hg.sr.ht caused, mostly, it seems, by the 
Alpine mercurial package disabling and re-enabling the Rust extensions for a 
couple releases:

https://git.alpinelinux.org/aports/log/community/mercurial/APKBUILD

In the git log above, note the 6.7.3 and 6.7.4 releases sandwiched between 
commits that disabled/re-enabled the Rust extensions. Judging from the comments 
on the first commit, they did this because of this bug: 
https://github.com/dgrunwald/rust-cpython/issues/294

But anyway, the problem is that Rust was enabled before, and so some of our 
customers' repositories started using persistent nodemaps. When the Rust 
extensions were disabled by the package upgrade, we started running into 
errors, because it looks like Mercurial defaults to "abort" when persistent 
nodemaps are encountered without the Rust extensions being present.

We solved it temporarily by setting 
`storage.revlog.persistent-nodemap.slow-path` to `warn`, system-wide.

I wonder if `warn` should be the default behaviour? There are other Mercurial 
features that still "work with a warning" when stuff is missing, such as 
obsolete tags found without evolve being activated. Is there a good reason to 
default to "abort" in the case of persistent nodemaps?

Thanks!

Ludo
_______________________________________________
Mercurial mailing list
Mercurial@lists.mercurial-scm.org
https://lists.mercurial-scm.org/mailman/listinfo/mercurial

Reply via email to