diff options
author | simonhatch@chromium.org <simonhatch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-28 20:47:00 +0000 |
---|---|---|
committer | simonhatch@chromium.org <simonhatch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-28 20:47:00 +0000 |
commit | 65fb2fab8acad5d3fc6704e9b94eea92fc5c7fe6 (patch) | |
tree | 4b3d97901195d0db143c08de2c139245a7e168bd /tools/bisect-perf-regression.py | |
parent | 51b9f84f6f78717addf71bc5572e9b4e643dc537 (diff) | |
download | chromium_src-65fb2fab8acad5d3fc6704e9b94eea92fc5c7fe6.zip chromium_src-65fb2fab8acad5d3fc6704e9b94eea92fc5c7fe6.tar.gz chromium_src-65fb2fab8acad5d3fc6704e9b94eea92fc5c7fe6.tar.bz2 |
Parse V8's bleeding_edge revision from trunk's description.
Previously, we looked for a description in trunk with "Version X.Y.Z" and a corresponding svn_revision-1 in bleeding_edge with the message "Prepare push to trunk." but that's been removed. The new format is that trunk's description contains "Version 3.X.Y (based on bleeding_edge revision rZ)", so we need to parse out bleeding_edge from there now. We try the new format first, and fall back to the old format (to make sure we can continue bisecting older regressions).
BUG=337167
Review URL: https://codereview.chromium.org/183993002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254218 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/bisect-perf-regression.py')
-rwxr-xr-x | tools/bisect-perf-regression.py | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/tools/bisect-perf-regression.py b/tools/bisect-perf-regression.py index 0b58669..61cc3c7 100755 --- a/tools/bisect-perf-regression.py +++ b/tools/bisect-perf-regression.py @@ -1144,6 +1144,10 @@ class BisectPerformanceMetrics(object): # 1. trunk revision N has description "Version X.Y.Z" # 2. bleeding_edge revision (N-1) has description "Prepare push to # trunk. Now working on X.Y.(Z+1)." + # + # As of 01/24/2014, V8 trunk descriptions are formatted: + # "Version 3.X.Y (based on bleeding_edge revision rZ)" + # So we can just try parsing that out first and fall back to the old way. v8_dir = self._GetDepotDirectory('v8') v8_bleeding_edge_dir = self._GetDepotDirectory('v8_bleeding_edge') @@ -1155,11 +1159,25 @@ class BisectPerformanceMetrics(object): regex_results = version_re.search(revision_info['subject']) if regex_results: - version = regex_results.group('values') + git_revision = None - git_revision = self.source_control.ResolveToRevision( - int(svn_revision) - 1, 'v8_bleeding_edge', -1, - cwd=v8_bleeding_edge_dir) + # Look for "based on bleeding_edge" and parse out revision + if 'based on bleeding_edge' in revision_info['subject']: + try: + bleeding_edge_revision = revision_info['subject'].split( + 'bleeding_edge revision r')[1] + bleeding_edge_revision = int(bleeding_edge_revision.split(')')[0]) + git_revision = self.source_control.ResolveToRevision( + bleeding_edge_revision, 'v8_bleeding_edge', 1, + cwd=v8_bleeding_edge_dir) + except IndexError, ValueError: + pass + + if not git_revision: + # Wasn't successful, try the old way of looking for "Prepare push to" + git_revision = self.source_control.ResolveToRevision( + int(svn_revision) - 1, 'v8_bleeding_edge', -1, + cwd=v8_bleeding_edge_dir) if git_revision: revision_info = self.source_control.QueryRevisionInfo(git_revision, |