comparison mercurial/branchmap.py @ 43688:5cdc3c1292f6

branchmap: make "closed" a set from beginning instead of converting from list Differential Revision: https://phab.mercurial-scm.org/D7427
author Martin von Zweigbergk <martinvonz@google.com>
date Thu, 14 Nov 2019 21:13:46 -0800
parents 9c1eccdd7ed8
children 7b14d649af1b
comparison
equal deleted inserted replaced
43687:f1dabf99db17 43688:5cdc3c1292f6
105 """ 105 """
106 cl = repo.changelog 106 cl = repo.changelog
107 clrev = cl.rev 107 clrev = cl.rev
108 clbranchinfo = cl.branchinfo 108 clbranchinfo = cl.branchinfo
109 rbheads = [] 109 rbheads = []
110 closed = [] 110 closed = set()
111 for bheads in pycompat.itervalues(remotebranchmap): 111 for bheads in pycompat.itervalues(remotebranchmap):
112 rbheads += bheads 112 rbheads += bheads
113 for h in bheads: 113 for h in bheads:
114 r = clrev(h) 114 r = clrev(h)
115 b, c = clbranchinfo(r) 115 b, c = clbranchinfo(r)
116 if c: 116 if c:
117 closed.append(h) 117 closed.add(h)
118 118
119 if rbheads: 119 if rbheads:
120 rtiprev = max((int(clrev(node)) for node in rbheads)) 120 rtiprev = max((int(clrev(node)) for node in rbheads))
121 cache = branchcache( 121 cache = branchcache(
122 remotebranchmap, 122 remotebranchmap,
123 repo[rtiprev].node(), 123 repo[rtiprev].node(),
124 rtiprev, 124 rtiprev,
125 closednodes=set(closed), 125 closednodes=closed,
126 ) 126 )
127 127
128 # Try to stick it as low as possible 128 # Try to stick it as low as possible
129 # filter above served are unlikely to be fetch from a clone 129 # filter above served are unlikely to be fetch from a clone
130 for candidate in (b'base', b'immutable', b'served'): 130 for candidate in (b'base', b'immutable', b'served'):