Mercurial > public > mercurial-scm > hg
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) |