Setting `HGMODULEPOLICY` for the tests is now required for the native
components to be properly detected when testing the already built binary
with `--with-hg`.
This release contains an important bug fix:
"Fix incorrect metadata causing dirstate-v2 data loss in edge case"
Release notes: https://www.mercurial-scm.org/wiki/Release6.1
They're very expensive to run, especially if you don't have that many
cores, and can sometimes be a bit flaky (it looks like their CI doesn't
run things under the same constraints as we tend to).
Move them to a separate derivation, and make them test the actual
installed output rather than the local copy.
This seems to be required for the tests to pass on Hydra.
Otherwise, the test suit fails with errors like:
```
feature pygit2 failed: OpenSSL error: failed to load certificates:
error:00000000:lib(0):func(0):reason(0)
```
The conclusion is that Phabricator does not, in fact, generate stable
patch links. In any case, these have landed, so we can just use the
patches from Mercurial's hgweb instance instead, which should be more
stable.
The git extension is bundled in-tree, similarly to the hg gui, but also
requires pygit2. Enable it for mercurialFull, but don't bother with it
for the stock mercurial install.
Alas, it doesn't (yet?) work on nixpkgs because it doesn't support
octopus merges:
mercurial.error.ProgrammingError: git support can't handle octopus
merges, found a commit with 16 parents :(
I'm sure that commit is loved equally by all 16 parents.
tortoisehg intentionally wants to back-date the Mercurial build,
and some of the features we've added to the Mercurial build won't work
correctly under hg 5.6.
The Rust extensions provide speedups for core Mercurial functionality.
We should start building with them.
They're only CI-tested on Linux, so they're disabled for non-Linux
platforms for now by default.