comparison mercurial/revlog.py @ 48855:6ea9ead59cf8

revlog: use rust rank computation if available Differential Revision: https://phab.mercurial-scm.org/D12212
author pacien <pacien.trangirard@pacien.net>
date Mon, 21 Feb 2022 16:18:39 +0100
parents d739cd69bb6a
children 6000f5b25c9b
comparison
equal deleted inserted replaced
48854:8b8054b8e5a7 48855:6ea9ead59cf8
2469 elif p1r != nullrev and p2r == nullrev: 2469 elif p1r != nullrev and p2r == nullrev:
2470 rank = 1 + self.fast_rank(p1r) 2470 rank = 1 + self.fast_rank(p1r)
2471 elif p1r == nullrev and p2r != nullrev: 2471 elif p1r == nullrev and p2r != nullrev:
2472 rank = 1 + self.fast_rank(p2r) 2472 rank = 1 + self.fast_rank(p2r)
2473 else: # merge node 2473 else: # merge node
2474 pmin, pmax = sorted((p1r, p2r)) 2474 if rustdagop is not None and self.index.rust_ext_compat:
2475 rank = 1 + self.fast_rank(pmax) 2475 rank = rustdagop.rank(self.index, p1r, p2r)
2476 rank += sum(1 for _ in self.findmissingrevs([pmax], [pmin])) 2476 else:
2477 pmin, pmax = sorted((p1r, p2r))
2478 rank = 1 + self.fast_rank(pmax)
2479 rank += sum(1 for _ in self.findmissingrevs([pmax], [pmin]))
2477 2480
2478 e = revlogutils.entry( 2481 e = revlogutils.entry(
2479 flags=flags, 2482 flags=flags,
2480 data_offset=offset, 2483 data_offset=offset,
2481 data_compressed_length=deltainfo.deltalen, 2484 data_compressed_length=deltainfo.deltalen,