Chromium Code Reviews| Index: scripts/slave/recipe_modules/auto_bisect/bisector.py |
| diff --git a/scripts/slave/recipe_modules/auto_bisect/bisector.py b/scripts/slave/recipe_modules/auto_bisect/bisector.py |
| index 861ebbdc174bef0ecb9c06f02dd3be49413c7f1d..f715314ddbce2b1beaa3919e79e2d80cb5621106 100644 |
| --- a/scripts/slave/recipe_modules/auto_bisect/bisector.py |
| +++ b/scripts/slave/recipe_modules/auto_bisect/bisector.py |
| @@ -377,23 +377,32 @@ class Bisector(object): |
| start=good_hash, |
| end=bad_hash, |
| depot_name=self.base_depot, |
| - step_name=step_name) |
| + step_name=step_name, |
| + exclude_end=True) |
| self.revisions = [self.good_rev] + revisions + [self.bad_rev] |
| self._update_revision_list_indexes() |
| def _revision_range(self, start, end, depot_name, base_revision=None, |
| - step_name=None): |
| + step_name=None, exclude_end=False): |
| """Returns a list of RevisionState objects between |start| and |end|. |
| + When expanding the initial revision range we want to exclude the last |
| + revision, since both good and bad have already been created and tested. |
| + When bisecting into a roll on the other hand, we want to include the last |
| + revision in the roll, because although the code should be equivalent to |
| + the roll, we want to blame the right culprit and not the roll. |
| + |
| Args: |
| start (str): Start commit hash. |
| end (str): End commit hash. |
| depot_name (str): Short string name of repo, e.g. chromium or v8. |
| base_revision (str): Base revision in the downstream repo (e.g. chromium). |
| step_name (str): Optional step name. |
| + exclude_end (boold): Whether to exclude the last revision in the range, |
|
prasadv
2016/08/29 18:04:22
boold-> bool
RobertoCN
2016/08/29 18:14:13
Done.
|
| + i.e. the revision given as end. |
| Returns: |
| - A list of RevisionState objects, not including the given start or end. |
| + A list of RevisionState objects. |
| """ |
| if self.internal_bisect: # pragma: no cover |
| return self._revision_range_with_gitiles( |
| @@ -408,7 +417,10 @@ class Bisector(object): |
| self.surface_result('BAD_REV') |
| raise |
| revisions = [] |
| - for commit_hash, _ in step_result.stdout: |
| + revision_hashes = step_result.stdout |
| + if exclude_end: |
| + revision_hashes = revision_hashes[:-1] |
| + for commit_hash, _ in revision_hashes: |
| revisions.append(self.revision_class( |
| bisector=self, |
| commit_hash=commit_hash, |