Simon Sapin <simon.sapin@octobus.net> [Mon, 06 Sep 2021 11:39:59 +0200] rev 47952
rust: Move VFS code to its own module
It was previously in the hg::repo module, but both repo code and vfs
will likely grow in the future.
Differential Revision: https://phab.mercurial-scm.org/D11394
Simon Sapin <simon.sapin@octobus.net> [Fri, 03 Sep 2021 16:32:35 +0200] rev 47951
rhg: Switch rhg.ignored-extensions config to Python-compatible list syntax
This includes the ability to have an extension name/path that contains a comma,
by double-quoting it.
Differential Revision: https://phab.mercurial-scm.org/D11390
Simon Sapin <simon.sapin@octobus.net> [Wed, 17 Feb 2021 20:49:53 +0100] rev 47950
rhg: Port Python’s `ui.configlist` as `Config::get_list`
This new method is not used yet outside of its own unit tests,
so this changeset should make no observable change.
The Rust parser implementation attempts to exactly replicate the behavior of
the Python one, even in edge cases where that behavior is… surprising.
New unit tests capture some of these edge cases.
This started as a line-by-line port. The main changes are:
* Pass around a parser mode enum instead of parser functions
* Inline the whole parser into one function
* Use `[u8]::get` which returns an `Option`,
instead of indexing after explicitly checking the length.
Differential Revision: https://phab.mercurial-scm.org/D11389
Simon Sapin <simon.sapin@octobus.net> [Fri, 03 Sep 2021 16:37:20 +0200] rev 47949
rust: Generalize the `trim_end_newlines` utility of byte strings
… into `trim_end_matches` that takes a callack.
Also add `trim_start_matches`.
Differential Revision: https://phab.mercurial-scm.org/D11388
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 30 Aug 2021 21:18:29 +0200] rev 47948
dirstate-item: move the C implementation to the same logic
Now that we know were we are going, we can update the C implementation.
Differential Revision: https://phab.mercurial-scm.org/D11387
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Aug 2021 09:23:50 +0200] rev 47947
dirstate-item: introduce low level C function
Since a lot of logic is about to change, we need to isolate it into bits that
are easy reusable in the rest of the C code.
Especially we need to split the part that do the pure logic from the part that
do the Python wrapping.
Differential Revision: https://phab.mercurial-scm.org/D11386
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Aug 2021 20:06:07 +0200] rev 47946
dirstate-item: factor some code in the C implementation
We have both `dirstate_item_from_v1_meth`, a class method, and
`dirstate_item_from_v1_data`, a function taking low level C argument.
Lets implement the former with the later.
Differential Revision: https://phab.mercurial-scm.org/D11385
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Aug 2021 19:19:21 +0200] rev 47945
dirstate-item: `dirstate_item_from_v1_data` replaces make_dirstate_item
For different format, we will need multiple capsule anyways.
Differential Revision: https://phab.mercurial-scm.org/D11384
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 30 Aug 2021 18:45:54 +0200] rev 47944
pathutil: replace the `skip` argument of `dirs` with a boolean
It is ever only used for `r` file. So we make it a boolean this will give use
more versatility later as we will stop storing the state explicitly.
Differential Revision: https://phab.mercurial-scm.org/D11383
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Sep 2021 00:16:37 +0200] rev 47943
dirstate: clarify the message in nonnormal checking
The previous message was quite verbose and hard to understand. The new one
should be friendlier.
Differential Revision: https://phab.mercurial-scm.org/D11382