rhg: centralize parsing of `--rev` CLI arguments
This new module will be the place to implement more of the revset language
when we do so.
Differential Revision: https://phab.mercurial-scm.org/D9873
rust: Remove hex parsing from the nodemap
Separating concerns simplifies error types.
Differential Revision: https://phab.mercurial-scm.org/D9864
rust: Make NodePrefix allocation-free and Copy, remove NodePrefixRef
The `*Ref` struct only existed to avoid allocating `Vec`s
when cloning `NodePrefix`, but we can avoid having `Vec`
in the first place by using an inline array instead.
This makes `NodePrefix` 21 bytes (with 1 for the length)
which is smaller than before as `Vec` alone is 24 bytes.
Differential Revision: https://phab.mercurial-scm.org/D9863
churn: count lines that look like diff headers but are not
Previously, churn cannot count added lines that start with "++ " or removed
lines that start with "-- ".
Differential Revision: https://phab.mercurial-scm.org/D9929
rust: Exclude empty node prefixes
We presumably don’t want `--rev ""` to select every single revision,
even though the empty string is a prefix of all strings.
Differential Revision: https://phab.mercurial-scm.org/D9862
rust: Simplify error type for reading hex node IDs
If a string is not valid hexadecimal it’s not that useful to track the precise reason.
Differential Revision: https://phab.mercurial-scm.org/D9861
rust: replace Node::encode_hex with std::fmt::LowerHex
This avoids allocating intermediate strings.
Differential Revision: https://phab.mercurial-scm.org/D9860
rhg: Build in release mode on CI
This follows
e73b40c790ec which made tests use the release executable.
With
e73b40c790ec but not this, tests are skipped on CI
because the executable is missing.
Differential Revision: https://phab.mercurial-scm.org/D9907
config: use the right API to access git-submodule
Differential Revision: https://phab.mercurial-scm.org/D9923
config: use the right API to access template access
Preventing direct access to the underlying dict will help a coming refactoring
of `config`.
Differential Revision: https://phab.mercurial-scm.org/D9922