Mercurial > public > mercurial-scm > hg
comparison mercurial/hbisect.py @ 9583:0491be4448bf
bisect: limit considered set to descendants of first good rev
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 12 Oct 2009 14:59:28 -0500 |
parents | fc27c91fff2c |
children | 25e572394f5c |
comparison
equal
deleted
inserted
replaced
9582:a25af3af941c | 9583:0491be4448bf |
---|---|
29 | 29 |
30 def buildancestors(bad, good): | 30 def buildancestors(bad, good): |
31 # only the earliest bad revision matters | 31 # only the earliest bad revision matters |
32 badrev = min([changelog.rev(n) for n in bad]) | 32 badrev = min([changelog.rev(n) for n in bad]) |
33 goodrevs = [changelog.rev(n) for n in good] | 33 goodrevs = [changelog.rev(n) for n in good] |
34 # build ancestors array | 34 goodrev = min(goodrevs) |
35 ancestors = [[]] * (len(changelog) + 1) # an extra for [-1] | 35 # build visit array |
36 ancestors = [None] * (len(changelog) + 1) # an extra for [-1] | |
37 | |
38 # set nodes descended from goodrev | |
39 ancestors[goodrev] = [] | |
40 for rev in xrange(goodrev + 1, len(changelog)): | |
41 for prev in clparents(rev): | |
42 if ancestors[prev] == []: | |
43 ancestors[rev] = [] | |
36 | 44 |
37 # clear good revs from array | 45 # clear good revs from array |
38 for node in goodrevs: | 46 for node in goodrevs: |
39 ancestors[node] = None | 47 ancestors[node] = None |
40 for rev in xrange(len(changelog), -1, -1): | 48 for rev in xrange(len(changelog), -1, -1): |