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'))