##// END OF EJS Templates
commit: increase perf by avoiding checks against entire repo subsets...
Durham Goode -
r17952:54cedee8 stable
parent child Browse files
Show More
@@ -571,6 +571,14 b' def _descendants(repo, subset, x, follow'
571 if not args:
571 if not args:
572 return []
572 return []
573 s = set(_revdescendants(repo, args, followfirst)) | set(args)
573 s = set(_revdescendants(repo, args, followfirst)) | set(args)
574
575 if len(subset) == len(repo):
576 # the passed in revisions may not exist, -1 for example
577 for arg in args:
578 if arg not in subset:
579 s.remove(arg)
580 return list(s)
581
574 return [r for r in subset if r in s]
582 return [r for r in subset if r in s]
575
583
576 def descendants(repo, subset, x):
584 def descendants(repo, subset, x):
@@ -1328,7 +1336,10 b' def roots(repo, subset, x):'
1328 Changesets in set with no parent changeset in set.
1336 Changesets in set with no parent changeset in set.
1329 """
1337 """
1330 s = set(getset(repo, repo.changelog, x))
1338 s = set(getset(repo, repo.changelog, x))
1331 subset = [r for r in subset if r in s]
1339 if len(subset) == len(repo):
1340 subset = s
1341 else:
1342 subset = [r for r in subset if r in s]
1332 cs = _children(repo, subset, s)
1343 cs = _children(repo, subset, s)
1333 return [r for r in subset if r not in cs]
1344 return [r for r in subset if r not in cs]
1334
1345
General Comments 0
You need to be logged in to leave comments. Login now