revlog: make _partialmatch fail fast on almost-hex inputs
Before this change, resolving a revision like [0123456789^] on
a large repo can take multiple seconds because:
- hg does not realize this is a revset, so it tries various things,
including _partialmatch(b"0123456789^")
- after the rust lookup fails, it falls back to pure hg
- pure hg takes all-but-last chars and converts them to binary,
which *succeeds*, so it does the expensive part.
fixbundle() {
grep -v 'saving bundle' | grep -v 'saved backup' | \
grep -v added | grep -v adding | \
grep -v "unable to find 'e' for patching" | \
grep -v "e: No such file or directory" | \
cat
}