comparison mercurial/revset.py @ 16396:03e408a122c4 stable

revset: avoid set duplication in roots()
author Patrick Mezard <patrick@mezard.eu>
date Sun, 08 Apr 2012 11:14:56 +0200
parents c3fd35f88fbb
children a232a1b5ae9b
comparison
equal deleted inserted replaced
16395:c3fd35f88fbb 16396:03e408a122c4
321 if m(f): 321 if m(f):
322 s.append(r) 322 s.append(r)
323 break 323 break
324 return s 324 return s
325 325
326 def _children(repo, narrow, s): 326 def _children(repo, narrow, parentset):
327 cs = set() 327 cs = set()
328 pr = repo.changelog.parentrevs 328 pr = repo.changelog.parentrevs
329 s = set(s)
330 for r in narrow: 329 for r in narrow:
331 for p in pr(r): 330 for p in pr(r):
332 if p in s: 331 if p in parentset:
333 cs.add(r) 332 cs.add(r)
334 return cs 333 return cs
335 334
336 def children(repo, subset, x): 335 def children(repo, subset, x):
337 """``children(set)`` 336 """``children(set)``
338 Child changesets of changesets in set. 337 Child changesets of changesets in set.
339 """ 338 """
340 s = getset(repo, range(len(repo)), x) 339 s = set(getset(repo, range(len(repo)), x))
341 cs = _children(repo, subset, s) 340 cs = _children(repo, subset, s)
342 return [r for r in subset if r in cs] 341 return [r for r in subset if r in cs]
343 342
344 def closed(repo, subset, x): 343 def closed(repo, subset, x):
345 """``closed()`` 344 """``closed()``