# HG changeset patch # User Pierre-Yves David # Date 1434669313 25200 # Node ID 64c8b8c278114bfbb4c9624bcd6b6fd94793d981 # Parent cf62abb62941abce68a452e0d9ea82fd1de74aee evolve: move 'allprecursors()' to smarted usage The "new" smarted can be significantly more efficient than the old was. We convert our revset to take advantage of that. diff -r cf62abb62941 -r 64c8b8c27811 hgext/evolve.py --- a/hgext/evolve.py Thu Jun 18 16:15:00 2015 -0700 +++ b/hgext/evolve.py Thu Jun 18 16:15:13 2015 -0700 @@ -443,6 +443,7 @@ pr = nm.get(p) if pr is not None: cs.add(pr) + cs -= repo.changelog.filteredrevs # nodemap has no filtering return cs def _successors(repo, s): @@ -527,8 +528,9 @@ Transitive precursors of changesets in set. """ s = revset.getset(repo, revset.fullreposet(repo), x) - cs = _allprecursors(repo, s) - return [r for r in subset if r in cs] + s = revset.baseset(_allprecursors(repo, s)) + s.sort() + return subset & s @eh.revset('successors')