# HG changeset patch # User Pierre-Yves David # Date 2017-06-05 14:17:47 # Node ID 443e8543a1252d967991b82cbd36dc5c625472b9 # Parent eede022fc142d1fc64222ac1d104f3cfc3286a00 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. diff --git a/mercurial/discovery.py b/mercurial/discovery.py --- a/mercurial/discovery.py +++ b/mercurial/discovery.py @@ -443,8 +443,8 @@ def _postprocessobsolete(pushop, futurec 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, futurec 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, 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')