rust-index: using `hg::index::Index` in `hg-cpython::dagops`
Hooking `headrevs` to the Rust index is straightforward as long as
we go the `PySharedRef` way. Direct attempts of obtaining a reference
to the inner `hg::index::Index` fail for lifetime reasons: the reference
is bound to the GIL, yet the `as_set` local variable is considered to
be static (the borrow checker clearly does not realize or care that this
set only stores `Revision` values).
In `rank()`, the chosen solution is the simplest as far as `hg-cpython` is
concerned, but it has the defect of removing an implementation
that would be easily adaptable if the core index did implement `RankedGraph`
(returning the same error as long as only `REVLOGV1` is supported), but that
would introduce a direct dependency of `hg-core` on the ``vcsgraph` crate.
Test admin::verify
$ hg init admin-verify
$ cd admin-verify
Test normal output
$ hg admin::verify -c dirstate
running 1 checks
running working-copy.dirstate
checking dirstate
Quiet works
$ hg admin::verify -c dirstate --quiet
Test no check no options
$ hg admin::verify
abort: `checks` required
[255]
Test single check without options
$ hg admin::verify -c working-copy.dirstate
running 1 checks
running working-copy.dirstate
checking dirstate
Test single check (alias) without options
$ hg admin::verify -c dirstate
running 1 checks
running working-copy.dirstate
checking dirstate
Test wrong check name without options
$ hg admin::verify -c working-copy.dir
abort: unknown check working-copy.dir
(did you mean working-copy.dirstate?)
[10]
Test wrong alias without options
$ hg admin::verify -c dir
abort: unknown check dir
[10]