18 def buildancestors(bad, good): |
18 def buildancestors(bad, good): |
19 # only the earliest bad revision matters |
19 # only the earliest bad revision matters |
20 badrev = min([changelog.rev(n) for n in bad]) |
20 badrev = min([changelog.rev(n) for n in bad]) |
21 goodrevs = [changelog.rev(n) for n in good] |
21 goodrevs = [changelog.rev(n) for n in good] |
22 # build ancestors array |
22 # build ancestors array |
23 ancestors = [[]] * (changelog.count() + 1) # an extra for [-1] |
23 ancestors = [[]] * (len(changelog) + 1) # an extra for [-1] |
24 |
24 |
25 # clear good revs from array |
25 # clear good revs from array |
26 for node in goodrevs: |
26 for node in goodrevs: |
27 ancestors[node] = None |
27 ancestors[node] = None |
28 for rev in xrange(changelog.count(), -1, -1): |
28 for rev in xrange(len(changelog), -1, -1): |
29 if ancestors[rev] is None: |
29 if ancestors[rev] is None: |
30 for prev in clparents(rev): |
30 for prev in clparents(rev): |
31 ancestors[prev] = None |
31 ancestors[prev] = None |
32 |
32 |
33 if ancestors[badrev] is None: |
33 if ancestors[badrev] is None: |