##// END OF EJS Templates
revset: remove grandparent by using reachableroots...
Laurent Charignon -
r26003:62371c53 default
parent child Browse files
Show More
@@ -22,7 +22,10 b' from __future__ import absolute_import'
22 import heapq
22 import heapq
23
23
24 from .node import nullrev
24 from .node import nullrev
25 from . import util
25 from . import (
26 revset,
27 util,
28 )
26
29
27 CHANGESET = 'C'
30 CHANGESET = 'C'
28
31
@@ -235,8 +238,6 b' def dagwalker(repo, revs):'
235 if not revs:
238 if not revs:
236 return
239 return
237
240
238 cl = repo.changelog
239 lowestrev = revs.min()
240 gpcache = {}
241 gpcache = {}
241
242
242 if repo.ui.configbool('experimental', 'graph-group-branches', False):
243 if repo.ui.configbool('experimental', 'graph-group-branches', False):
@@ -258,7 +259,7 b' def dagwalker(repo, revs):'
258 for mpar in mpars:
259 for mpar in mpars:
259 gp = gpcache.get(mpar)
260 gp = gpcache.get(mpar)
260 if gp is None:
261 if gp is None:
261 gp = gpcache[mpar] = grandparent(cl, lowestrev, revs, mpar)
262 gp = gpcache[mpar] = revset.reachableroots(repo, revs, [mpar])
262 if not gp:
263 if not gp:
263 parents.append(mpar)
264 parents.append(mpar)
264 else:
265 else:
@@ -356,24 +357,6 b' def colored(dag, repo):'
356 yield (cur, type, data, (col, color), edges)
357 yield (cur, type, data, (col, color), edges)
357 seen = next
358 seen = next
358
359
359 def grandparent(cl, lowestrev, roots, head):
360 """Return all ancestors of head in roots which revision is
361 greater or equal to lowestrev.
362 """
363 pending = set([head])
364 seen = set()
365 kept = set()
366 llowestrev = max(nullrev, lowestrev)
367 while pending:
368 r = pending.pop()
369 if r >= llowestrev and r not in seen:
370 if r in roots:
371 kept.add(r)
372 else:
373 pending.update([p for p in cl.parentrevs(r)])
374 seen.add(r)
375 return sorted(kept)
376
377 def asciiedges(type, char, lines, seen, rev, parents):
360 def asciiedges(type, char, lines, seen, rev, parents):
378 """adds edge info to changelog DAG walk suitable for ascii()"""
361 """adds edge info to changelog DAG walk suitable for ascii()"""
379 if rev not in seen:
362 if rev not in seen:
General Comments 0
You need to be logged in to leave comments. Login now