revlog: make pure version of _partialmatch() support 40-byte hex nodeids
Without this patch, test-histedit-arguments.t would fail when run with
--pure. It turned out to be because the pure version of
_partialmatch() does not support full 40-byte hex nodeids. When
histedit's instructions include things like "pick tip", it resolves
the "tip" revision early to a full nodeid (but plain hex nodeid
prefixes are not resolved to full nodeids). Then the nodeid (full or
not) is looked up using to a full nodeid later. This step is what
fails in pure mode. It has been failing since my c4131138eadb
(histedit: look up partial nodeid as partial nodeid, 2018-04-06). I
haven't verified, but I suspect histedit instructions like "pick <full
hex nodeid>" would have been failing before my commit too, though.
The fix is trivial: change a "< 40" to "<= 40".
Differential Revision: https://phab.mercurial-scm.org/D3428
% lazy ancestor set for [], stoprev = 0, inclusive = False
membership: []
iteration: []
% lazy ancestor set for [11, 13], stoprev = 0, inclusive = False
membership: [7, 8, 3, 4, 1, 0]
iteration: [3, 7, 8, 1, 4, 0, 2]
% lazy ancestor set for [1, 3], stoprev = 0, inclusive = False
membership: [1, 0]
iteration: [0, 1]
% lazy ancestor set for [11, 13], stoprev = 0, inclusive = True
membership: [11, 13, 7, 8, 3, 4, 1, 0]
iteration: [11, 13, 3, 7, 8, 1, 4, 0, 2]
% lazy ancestor set for [11, 13], stoprev = 6, inclusive = False
membership: [7, 8]
iteration: [7, 8]
% lazy ancestor set for [11, 13], stoprev = 6, inclusive = True
membership: [11, 13, 7, 8]
iteration: [11, 13, 7, 8]