equal
deleted
inserted
replaced
158 """ |
158 """ |
159 Return a list of revision(s) that match the given status: |
159 Return a list of revision(s) that match the given status: |
160 |
160 |
161 - ``good``, ``bad``, ``skip``: as the names imply |
161 - ``good``, ``bad``, ``skip``: as the names imply |
162 - ``range`` : all csets taking part in the bisection |
162 - ``range`` : all csets taking part in the bisection |
|
163 - ``pruned`` : good|bad|skip, excluding out-of-range csets |
163 """ |
164 """ |
164 state = load_state(repo) |
165 state = load_state(repo) |
165 if status in ('good', 'bad', 'skip'): |
166 if status in ('good', 'bad', 'skip'): |
166 return [repo.changelog.rev(n) for n in state[status]] |
167 return [repo.changelog.rev(n) for n in state[status]] |
167 else: |
168 else: |
188 range = set(c for c in ba if c in gd) |
189 range = set(c for c in ba if c in gd) |
189 range |= set(c for c in ga if c in bd) |
190 range |= set(c for c in ga if c in bd) |
190 |
191 |
191 if status == 'range': |
192 if status == 'range': |
192 return [c for c in range] |
193 return [c for c in range] |
|
194 elif status == 'pruned': |
|
195 # We do not want skipped csets that are out-of-range |
|
196 return [c for c in range if c in (goods | bads | skips)] |
193 |
197 |
194 else: |
198 else: |
195 raise error.ParseError(_('invalid bisect state')) |
199 raise error.ParseError(_('invalid bisect state')) |