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.
--- a/mercurial/discovery.py Fri Jun 09 12:29:29 2017 +0100
+++ b/mercurial/discovery.py Mon Jun 05 15:17:47 2017 +0100
@@ -443,8 +443,8 @@
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 @@
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 @@
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')