Georges Racinet <georges.racinet@octobus.net> [Mon, 13 Jan 2020 19:56:16 +0100] rev 44503
rust-index: moved constructor in separate impl block
with the upcoming addition of the nodemap logic, it's going to become
more complicated.
Being in the separate impl block has the advantage to be subject to rustfmt,
whereas code inside macro calls isn't.
Differential Revision: https://phab.mercurial-scm.org/D8153
Georges Racinet <georges.racinet@octobus.net> [Mon, 13 Jan 2020 19:31:33 +0100] rev 44502
revlog: using two new functions in C capsule from Rust code
We expose `index_length` and `index_node` in the C capsule, so that
the Rust representation of the C index can implement the `RevlogIndex`
trait.
Because our `Node` is actually a one-field struct, we have
to decorate it for direct FFI exchange with the C `char*`
It would be a good thing to get a length from the C layer, but doing
so right now would probably interfere with the upcoming changes that
will happen there for the hash length.
Differential Revision: https://phab.mercurial-scm.org/D8152
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Feb 2020 19:11:14 +0100] rev 44501
nodemap: refresh the persistent data on nodemap creation
The logic to read the data and validate the docket are still in python, so we
need to "help" whatever compiled code live in the index to refresh it.
Otherwise clearing the cache could lead to an expensive full recomputation and
disk update even when the persisted data are still valid.
Differential Revision: https://phab.mercurial-scm.org/D8174