summaryrefslogtreecommitdiffstats
path: root/chromium/tools
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2013-02-27 16:44:36 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-02-27 16:44:37 +0000
commita958325232a499a348471b159796bbb2c80c08b2 (patch)
treed0dbc91063dfe9468ad18ce821c5072e699c5232 /chromium/tools
parent40eccfbdc8efc3219a81d3044a2b9ceb2f75a834 (diff)
parent3977434d5c3aafc00eaae0d2e78fa8ddd72536f3 (diff)
downloadandroid_frameworks_webview-a958325232a499a348471b159796bbb2c80c08b2.tar.gz
android_frameworks_webview-a958325232a499a348471b159796bbb2c80c08b2.tar.bz2
android_frameworks_webview-a958325232a499a348471b159796bbb2c80c08b2.zip
Merge "Add --sha1 option to merge_from_chromium.py" into master-chromium
Diffstat (limited to 'chromium/tools')
-rwxr-xr-xchromium/tools/merge_from_chromium.py43
1 files changed, 34 insertions, 9 deletions
diff --git a/chromium/tools/merge_from_chromium.py b/chromium/tools/merge_from_chromium.py
index d4c855d..33968e2 100755
--- a/chromium/tools/merge_from_chromium.py
+++ b/chromium/tools/merge_from_chromium.py
@@ -349,22 +349,37 @@ def GetHEAD():
"""
(svn_revision, root_sha1) = _GetSVNRevisionAndSHA1(SRC_GIT_URL,
SRC_GIT_BRANCH,
- 'HEAD')
+ 'HEAD',
+ None)
return int(svn_revision)
-def _GetSVNRevisionAndSHA1(git_url, git_branch, svn_revision):
+def _ParseSvnRevisionFromGitCommitMessage(commit_message):
+ return re.search(r'^git-svn-id: .*@([0-9]+)', commit_message,
+ flags=re.MULTILINE).group(1)
+
+
+def _GetSVNRevisionFromSha(sha1):
+ commit = merge_common.GetCommandStdout([
+ 'git', 'show', '--format=%H%n%b', sha1])
+ return _ParseSvnRevisionFromGitCommitMessage(commit)
+
+
+def _GetSVNRevisionAndSHA1(git_url, git_branch, svn_revision, sha1):
logging.debug('Getting SVN revision and SHA1 ...')
merge_common.GetCommandStdout(['git', 'fetch', '-f', git_url,
git_branch + ':cached_upstream'])
+
+ if sha1:
+ return (_GetSVNRevisionFromSha(sha1), sha1)
+
if svn_revision == 'HEAD':
# Just use the latest commit.
commit = merge_common.GetCommandStdout([
'git', 'log', '-n1', '--grep=git-svn-id:', '--format=%H%n%b',
'cached_upstream'])
sha1 = commit.split()[0]
- svn_revision = re.search(r'^git-svn-id: .*@([0-9]+)', commit,
- flags=re.MULTILINE).group(1)
+ svn_revision = _ParseSvnRevisionFromGitCommitMessage(commit)
return (svn_revision, sha1)
if svn_revision is None:
@@ -383,7 +398,7 @@ def _GetSVNRevisionAndSHA1(git_url, git_branch, svn_revision):
return (svn_revision, sha1)
-def Snapshot(svn_revision, unattended):
+def Snapshot(svn_revision, root_sha1, unattended):
"""Takes a snapshot of the Chromium tree and merges it into Android.
Android makefiles and a top-level NOTICE file are generated and committed
@@ -391,6 +406,8 @@ def Snapshot(svn_revision, unattended):
Args:
svn_revision: The SVN revision in the Chromium repository to merge from.
+ root_sha1: The sha1 in the Chromium git mirror to merge from. Only one of
+ svn_revision and root_sha1 should be specified.
unattended: Run in unattended mode.
Returns:
@@ -399,7 +416,7 @@ def Snapshot(svn_revision, unattended):
git_url = SRC_GIT_URL
git_branch = SRC_GIT_BRANCH
(svn_revision, root_sha1) = _GetSVNRevisionAndSHA1(git_url, git_branch,
- svn_revision)
+ svn_revision, root_sha1)
if not merge_common.GetCommandStdout(['git', 'rev-list', '-1',
'HEAD..' + root_sha1]):
logging.info('No new commits to merge from %s branch %s at r%s (%s)',
@@ -442,11 +459,19 @@ def main():
'', '--svn_revision',
default=None,
help=('Merge to the specified chromium SVN revision, rather than using '
- 'the current LKGR. Can also pass HEAD to merge from tip of tree.'))
+ 'the current LKGR. Can also pass HEAD to merge from tip of tree. '
+ 'Only one of svn_revision and sha1 should be specified'))
+ parser.add_option(
+ '', '--sha1',
+ default=None,
+ help=('Merge to the specified chromium sha1 revision from ' + SRC_GIT_BRANCH
+ + ' branch, rather than using the current LKGR. Only one of'
+ 'svn_revision and sha1 should be specified.'))
parser.add_option(
'', '--push',
default=False, action='store_true',
- help=('Push the result of a previous merge to the server.'))
+ help=('Push the result of a previous merge to the server. Note '
+ 'svn_revision must be given.'))
parser.add_option(
'', '--get_lkgr',
default=False, action='store_true',
@@ -487,7 +512,7 @@ def main():
else:
Push(options.svn_revision)
else:
- if not Snapshot(options.svn_revision, options.unattended):
+ if not Snapshot(options.svn_revision, options.sha1, options.unattended):
return options.no_changes_exit
return 0