comparison mercurial/changegroup.py @ 39181:0a934ee94f09

dagop: port revlogdag.linearize() to standalone function The code should functionally be identical. We also port the one consumer in changegroup to use the new standalone function. After this commit, dagutil is no longer used! Differential Revision: https://phab.mercurial-scm.org/D4329
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 17 Aug 2018 21:21:50 +0000
parents 0b5f534df82a
children 2646b8d66b7b
comparison
equal deleted inserted replaced
39180:8de526995844 39181:0a934ee94f09
22 from .thirdparty import ( 22 from .thirdparty import (
23 attr, 23 attr,
24 ) 24 )
25 25
26 from . import ( 26 from . import (
27 dagutil, 27 dagop,
28 error, 28 error,
29 match as matchmod, 29 match as matchmod,
30 mdiff, 30 mdiff,
31 phases, 31 phases,
32 pycompat, 32 pycompat,
585 def _sortnodesnormal(store, nodes, reorder): 585 def _sortnodesnormal(store, nodes, reorder):
586 """Sort nodes for changegroup generation and turn into revnums.""" 586 """Sort nodes for changegroup generation and turn into revnums."""
587 # for generaldelta revlogs, we linearize the revs; this will both be 587 # for generaldelta revlogs, we linearize the revs; this will both be
588 # much quicker and generate a much smaller bundle 588 # much quicker and generate a much smaller bundle
589 if (store._generaldelta and reorder is None) or reorder: 589 if (store._generaldelta and reorder is None) or reorder:
590 dag = dagutil.revlogdag(store) 590 revs = set(store.rev(n) for n in nodes)
591 return dag.linearize(set(store.rev(n) for n in nodes)) 591 return dagop.linearize(revs, store.parentrevs)
592 else: 592 else:
593 return sorted([store.rev(n) for n in nodes]) 593 return sorted([store.rev(n) for n in nodes])
594 594
595 def _sortnodesellipsis(store, nodes, cl, lookup): 595 def _sortnodesellipsis(store, nodes, cl, lookup):
596 """Sort nodes for changegroup generation and turn into revnums.""" 596 """Sort nodes for changegroup generation and turn into revnums."""