Skip to content

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.

Merge request reports