comparison mercurial/revset.py @ 17785:ac5c9c8046f7

clfilter: use changelog to iterate over the repo in branchpoint Otherwise filtered changesets may cause false positives in `branchpoint()`.
author Pierre-Yves David <pierre-yves.david@logilab.fr>
date Mon, 15 Oct 2012 17:42:40 +0200
parents 69d5078d760d
children 72c234081ae1
comparison
equal deleted inserted replaced
17784:73e1ab39792c 17785:ac5c9c8046f7
927 cl = repo.changelog 927 cl = repo.changelog
928 if not subset: 928 if not subset:
929 return [] 929 return []
930 baserev = min(subset) 930 baserev = min(subset)
931 parentscount = [0]*(len(repo) - baserev) 931 parentscount = [0]*(len(repo) - baserev)
932 for r in xrange(baserev + 1, len(repo)): 932 for r in cl.revs(start=baserev + 1):
933 for p in cl.parentrevs(r): 933 for p in cl.parentrevs(r):
934 if p >= baserev: 934 if p >= baserev:
935 parentscount[p - baserev] += 1 935 parentscount[p - baserev] += 1
936 branchpoints = set((baserev + i) for i in xrange(len(parentscount)) 936 branchpoints = set((baserev + i) for i in xrange(len(parentscount))
937 if parentscount[i] > 1) 937 if parentscount[i] > 1)