mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
checkheads: pass "ispushed" function to the obsmarkers logic
We are about to make "allfuturecommon" a set of revs instead of a set of nodes. The function updated in this patch do not needs to know about these details so we just pass it a 'ispushed(node)' function. This will simplify the next changeset.
This commit is contained in:
parent
2fdfd87513
commit
a0b8c4a72d
@ -443,8 +443,8 @@ def _postprocessobsolete(pushop, futurecommon, candidate_newhs):
|
||||
public = phases.public
|
||||
getphase = unfi._phasecache.phase
|
||||
ispublic = (lambda r: getphase(unfi, r) == public)
|
||||
hasoutmarker = functools.partial(pushingmarkerfor, unfi.obsstore,
|
||||
futurecommon)
|
||||
ispushed = (lambda n: n in futurecommon)
|
||||
hasoutmarker = functools.partial(pushingmarkerfor, unfi.obsstore, ispushed)
|
||||
successorsmarkers = unfi.obsstore.successors
|
||||
newhs = set() # final set of new heads
|
||||
discarded = set() # new head of fully replaced branch
|
||||
@ -496,7 +496,7 @@ def _postprocessobsolete(pushop, futurecommon, candidate_newhs):
|
||||
newhs |= unknownheads
|
||||
return newhs, discarded
|
||||
|
||||
def pushingmarkerfor(obsstore, pushset, node):
|
||||
def pushingmarkerfor(obsstore, ispushed, node):
|
||||
"""true if some markers are to be pushed for node
|
||||
|
||||
We cannot just look in to the pushed obsmarkers from the pushop because
|
||||
@ -512,7 +512,7 @@ def pushingmarkerfor(obsstore, pushset, node):
|
||||
seen = set(stack)
|
||||
while stack:
|
||||
current = stack.pop()
|
||||
if current in pushset:
|
||||
if ispushed(current):
|
||||
return True
|
||||
markers = successorsmarkers.get(current, ())
|
||||
# markers fields = ('prec', 'succs', 'flag', 'meta', 'date', 'parents')
|
||||
|
Loading…
Reference in New Issue
Block a user