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

Side by Side Diff: tools/bisect-builds.py

Issue 547473002: bisect-builds.py: Correct method to convert SVN revision to Git hash. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Snapshot Build Bisect Tool 6 """Snapshot Build Bisect Tool
7 7
8 This script bisects a snapshot archive using binary search. It starts at 8 This script bisects a snapshot archive using binary search. It starts at
9 a bad revision (it will try to guess HEAD) and asks for a last known-good 9 a bad revision (it will try to guess HEAD) and asks for a last known-good
10 revision. It will then binary search across this revision range by downloading, 10 revision. It will then binary search across this revision range by downloading,
(...skipping 15 matching lines...) Expand all
26 # Base URL for downloading official builds. 26 # Base URL for downloading official builds.
27 GOOGLE_APIS_URL = 'commondatastorage.googleapis.com' 27 GOOGLE_APIS_URL = 'commondatastorage.googleapis.com'
28 28
29 # The base URL for official builds. 29 # The base URL for official builds.
30 OFFICIAL_BASE_URL = 'http://%s/%s' % (GOOGLE_APIS_URL, GS_BUCKET_NAME) 30 OFFICIAL_BASE_URL = 'http://%s/%s' % (GOOGLE_APIS_URL, GS_BUCKET_NAME)
31 31
32 # URL template for viewing changelogs between revisions. 32 # URL template for viewing changelogs between revisions.
33 CHANGELOG_URL = ('https://chromium.googlesource.com/chromium/src/+log/%s..%s') 33 CHANGELOG_URL = ('https://chromium.googlesource.com/chromium/src/+log/%s..%s')
34 34
35 # URL to convert SVN revision to git hash. 35 # URL to convert SVN revision to git hash.
36 CRREV_URL = ('http://crrev.com/') 36 CRREV_URL = ('https://cr-rev.appspot.com/_ah/api/crrev/v1/redirect/')
37
38 # Search pattern to match git hash.
39 GITHASH_SEARCH_PATTERN = (r'<title>(\w+)\s')
40 37
41 # URL template for viewing changelogs between official versions. 38 # URL template for viewing changelogs between official versions.
42 OFFICIAL_CHANGELOG_URL = ('https://chromium.googlesource.com/chromium/' 39 OFFICIAL_CHANGELOG_URL = ('https://chromium.googlesource.com/chromium/'
43 'src/+log/%s..%s?pretty=full') 40 'src/+log/%s..%s?pretty=full')
44 41
45 # DEPS file URL. 42 # DEPS file URL.
46 DEPS_FILE = 'http://src.chromium.org/viewvc/chrome/trunk/src/DEPS?revision=%d' 43 DEPS_FILE = 'http://src.chromium.org/viewvc/chrome/trunk/src/DEPS?revision=%d'
47 44
48 # Blink changelogs URL. 45 # Blink changelogs URL.
49 BLINK_CHANGELOG_URL = ('http://build.chromium.org' 46 BLINK_CHANGELOG_URL = ('http://build.chromium.org'
(...skipping 898 matching lines...) Expand 10 before | Expand all | Expand 10 after
948 print 'Could not determine latest revision. This could be bad...' 945 print 'Could not determine latest revision. This could be bad...'
949 return 999999999 946 return 999999999
950 947
951 def PrintChangeLog(min_chromium_rev, max_chromium_rev): 948 def PrintChangeLog(min_chromium_rev, max_chromium_rev):
952 """Prints the changelog URL.""" 949 """Prints the changelog URL."""
953 950
954 def _GetGitHashFromSVNRevision(svn_revision): 951 def _GetGitHashFromSVNRevision(svn_revision):
955 crrev_url = CRREV_URL + str(svn_revision) 952 crrev_url = CRREV_URL + str(svn_revision)
956 url = urllib.urlopen(crrev_url) 953 url = urllib.urlopen(crrev_url)
957 if url.getcode() == 200: 954 if url.getcode() == 200:
958 result = re.search(GITHASH_SEARCH_PATTERN, url.read()) 955 data = json.loads(url.read())
959 return result.group(1) 956 if 'git_sha' in data:
957 return data['git_sha']
960 958
961 print (' ' + CHANGELOG_URL % (_GetGitHashFromSVNRevision(min_chromium_rev), 959 print (' ' + CHANGELOG_URL % (_GetGitHashFromSVNRevision(min_chromium_rev),
962 _GetGitHashFromSVNRevision(max_chromium_rev))) 960 _GetGitHashFromSVNRevision(max_chromium_rev)))
963 961
964 962
965 def main(): 963 def main():
966 usage = ('%prog [options] [-- chromium-options]\n' 964 usage = ('%prog [options] [-- chromium-options]\n'
967 'Perform binary search on the snapshot builds to find a minimal\n' 965 'Perform binary search on the snapshot builds to find a minimal\n'
968 'range of revisions where a behavior change happened. The\n' 966 'range of revisions where a behavior change happened. The\n'
969 'behaviors are described as "good" and "bad".\n' 967 'behaviors are described as "good" and "bad".\n'
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
1162 1160
1163 print 'CHANGELOG URL:' 1161 print 'CHANGELOG URL:'
1164 if opts.official_builds: 1162 if opts.official_builds:
1165 print OFFICIAL_CHANGELOG_URL % (min_chromium_rev, max_chromium_rev) 1163 print OFFICIAL_CHANGELOG_URL % (min_chromium_rev, max_chromium_rev)
1166 else: 1164 else:
1167 PrintChangeLog(min_chromium_rev, max_chromium_rev) 1165 PrintChangeLog(min_chromium_rev, max_chromium_rev)
1168 1166
1169 1167
1170 if __name__ == '__main__': 1168 if __name__ == '__main__':
1171 sys.exit(main()) 1169 sys.exit(main())
OLDNEW
« 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