##// END OF EJS Templates
obsolete: have `allsuccessors` takes a list of nodes...
Pierre-Yves David -
r17827:612db9d7 default
parent child Browse files
Show More
@@ -267,7 +267,7 b' def validdest(repo, old, new):'
267 if c.phase() > phases.public:
267 if c.phase() > phases.public:
268 # obsolescence marker does not apply to public changeset
268 # obsolescence marker does not apply to public changeset
269 succs.update(obsolete.allsuccessors(repo.obsstore,
269 succs.update(obsolete.allsuccessors(repo.obsstore,
270 c.node()))
270 [c.node()]))
271 validdests = set(repo.set('%ln::', succs))
271 validdests = set(repo.set('%ln::', succs))
272 validdests.remove(old)
272 validdests.remove(old)
273 return new in validdests
273 return new in validdests
@@ -298,7 +298,7 b' def checkheads(repo, remote, outgoing, r'
298 if nh in repo and repo[nh].phase() <= phases.public:
298 if nh in repo and repo[nh].phase() <= phases.public:
299 newhs.add(nh)
299 newhs.add(nh)
300 else:
300 else:
301 for suc in obsolete.allsuccessors(repo.obsstore, nh):
301 for suc in obsolete.allsuccessors(repo.obsstore, [nh]):
302 if suc != nh and suc in allfuturecommon:
302 if suc != nh and suc in allfuturecommon:
303 discardedheads.add(nh)
303 discardedheads.add(nh)
304 break
304 break
@@ -351,11 +351,13 b' def successormarkers(ctx):'
351 for data in ctx._repo.obsstore.successors.get(ctx.node(), ()):
351 for data in ctx._repo.obsstore.successors.get(ctx.node(), ()):
352 yield marker(ctx._repo, data)
352 yield marker(ctx._repo, data)
353
353
354 def allsuccessors(obsstore, node):
354 def allsuccessors(obsstore, nodes):
355 """Yield every successor of <node>
355 """Yield node for every successor of <nodes>.
356
357 Some successors may be unknown locally.
356
358
357 This is a linear yield unsuited to detecting split changesets."""
359 This is a linear yield unsuited to detecting split changesets."""
358 remaining = set([node])
360 remaining = set(nodes)
359 seen = set(remaining)
361 seen = set(remaining)
360 while remaining:
362 while remaining:
361 current = remaining.pop()
363 current = remaining.pop()
General Comments 0
You need to be logged in to leave comments. Login now