chistedit: change action for the correct item
We have an experimental config histedit.later-commits-first from
c820866c52f9,
and when it's true, the order of commits in histedit UI is reversed, both in
text mode and in curses mode.
But before this patch key presses in curses mode would change histedit actions
in the same old order, i.e. trying to edit the latest commit (which would be
first now) would put "edit" action on the last commit in the list. This wasn't
a cosmetic issue, histedit would actually proceed to edit the first commit in
the list.
Let's map rules to display items (hopefully now correctly).
dirstate: remove the python-side whitelist of allowed matchers
This whitelist is too permissive because it allows matchers that contain
disallowed ones deep inside, for example through `intersectionmatcher`.
It is also too restrictive because it doesn't pass through
some of the matchers we support, such as `patternmatcher`.
It's also unnecessary because unsupported matchers raise
`FallbackError` and we fall back anyway.
Making this change makes more of the tests use rust code path,
and therefore subtly change behavior. For example, rust status
in largefiles repos seems to have strange behavior.
match: make `was_tampered_with` work recursively
This is useful if we are to use it outside of Rust, when
deciding whether or not to do some fast-path operation with
a given matcher.
largefiles: mark more matchers as having been tampered with
These happened to slip through the cracks earlier because they
weren't caught by tests. Now that we're enabling rust fast path
more widely these start breaking.