Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Unified Diff: tools/bisect-builds.py

Issue 8391018: bisect_builds: Also print the corresponding webkit revision range. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ok ok i'll close it Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/bisect-builds.py
diff --git a/tools/bisect-builds.py b/tools/bisect-builds.py
index 02ce053dba0202d7910137dd663f1d94b7b5f3d7..ee246969fd73cb3b4a590ac2732f87aca9bf3216 100755
--- a/tools/bisect-builds.py
+++ b/tools/bisect-builds.py
@@ -22,6 +22,13 @@ BUILD_VIEWVC_URL = 'http://src.chromium.org/viewvc/chrome?view=rev&revision=%d'
CHANGELOG_URL = 'http://build.chromium.org/f/chromium/' \
'perf/dashboard/ui/changelog.html?url=/trunk/src&range=%d:%d'
+# DEPS file URL.
+DEPS_FILE= 'http://src.chromium.org/viewvc/chrome/trunk/src/DEPS?revision=%d'
+
+# WebKit Changelogs URL.
+WEBKIT_CHANGELOG_URL = 'http://trac.webkit.org/log/' \
+ 'trunk/?rev=%d&stop_rev=%d&verbose=on'
+
###############################################################################
import math
@@ -424,6 +431,20 @@ def Bisect(platform,
return (revlist[good], revlist[bad])
+def GetWebKitRevisionForChromiumRevision(rev):
+ """Returns the webkit revision that was in chromium's DEPS file at
+ chromium revision |rev|."""
+ # . doesn't match newlines without re.DOTALL, so this is safe.
+ webkit_re = re.compile(r'webkit_revision.:\D*(\d+)')
+ url = urllib.urlopen(DEPS_FILE % rev)
+ m = webkit_re.search(url.read())
+ url.close()
+ if m:
+ return int(m.group(1))
+ else:
+ raise Exception('Could not get webkit revision for cr rev %d' % rev)
+
+
def main():
usage = ('%prog [options] [-- chromium-options]\n'
'Perform binary search on the snapshot builds.\n'
@@ -492,12 +513,26 @@ def main():
(last_known_good_rev, first_known_bad_rev) = Bisect(
opts.archive, good_rev, bad_rev, args, opts.profile)
+ # Get corresponding webkit revisions.
+ try:
+ last_known_good_webkit_rev = GetWebKitRevisionForChromiumRevision(
+ last_known_good_rev)
+ first_known_bad_webkit_rev = GetWebKitRevisionForChromiumRevision(
+ first_known_bad_rev)
+ except Exception, e:
+ # Silently ignore the failure.
+ last_known_good_webkit_rev, first_known_bad_webkit_rev = 0, 0
+
# We're done. Let the user know the results in an official manner.
print('You are probably looking for build %d.' % first_known_bad_rev)
- print('CHANGELOG URL:')
- print(CHANGELOG_URL % (last_known_good_rev, first_known_bad_rev))
- print('Built at revision:')
- print(BUILD_VIEWVC_URL % first_known_bad_rev)
+ if last_known_good_webkit_rev != first_known_bad_webkit_rev:
+ print 'WEBKIT CHANGELOG URL:'
+ print WEBKIT_CHANGELOG_URL % (first_known_bad_webkit_rev,
+ last_known_good_webkit_rev)
+ print 'CHANGELOG URL:'
+ print CHANGELOG_URL % (last_known_good_rev, first_known_bad_rev)
+ print 'Built at revision:'
+ print BUILD_VIEWVC_URL % first_known_bad_rev
if __name__ == '__main__':
sys.exit(main())
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698