Mercurial > public > mercurial-scm > hg
comparison mercurial/hbisect.py @ 15138:883d28233a4d
revset.bisect: add new 'untested' set to the bisect keyword
The 'untested' set is made of changesets that are in the bisection range
but for which the status is still unknown, and that can later be used to
further decide on the bisection outcome.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
author | "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> |
---|---|
date | Sat, 17 Sep 2011 14:33:20 +0200 |
parents | 91f93dcd72aa |
children | b39d85be78a8 |
comparison
equal
deleted
inserted
replaced
15137:91f93dcd72aa | 15138:883d28233a4d |
---|---|
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 - ``pruned`` : good|bad|skip, excluding out-of-range csets |
164 - ``untested`` : csets whose fate is yet unknown | |
164 """ | 165 """ |
165 state = load_state(repo) | 166 state = load_state(repo) |
166 if status in ('good', 'bad', 'skip'): | 167 if status in ('good', 'bad', 'skip'): |
167 return [repo.changelog.rev(n) for n in state[status]] | 168 return [repo.changelog.rev(n) for n in state[status]] |
168 else: | 169 else: |
192 if status == 'range': | 193 if status == 'range': |
193 return [c for c in range] | 194 return [c for c in range] |
194 elif status == 'pruned': | 195 elif status == 'pruned': |
195 # We do not want skipped csets that are out-of-range | 196 # We do not want skipped csets that are out-of-range |
196 return [c for c in range if c in (goods | bads | skips)] | 197 return [c for c in range if c in (goods | bads | skips)] |
198 elif status == 'untested': | |
199 # Return the csets in range that are not pruned | |
200 return [c for c in range if not c in (goods | bads | skips)] | |
197 | 201 |
198 else: | 202 else: |
199 raise error.ParseError(_('invalid bisect state')) | 203 raise error.ParseError(_('invalid bisect state')) |