summaryrefslogtreecommitdiffstats
path: root/chromium/tools
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2013-08-07 15:14:42 +0100
committerTorne (Richard Coles) <torne@google.com>2013-08-07 15:14:42 +0100
commit6adc8a2e72d90b3a5c1cf7cf7ec7be2f6c974851 (patch)
treee47682ba3443a0f688bf6fa8ae5b2b91ffc3290f /chromium/tools
parente20af1033cdbf091333cad7b359ed9d25fc6fcbb (diff)
downloadandroid_frameworks_webview-6adc8a2e72d90b3a5c1cf7cf7ec7be2f6c974851.tar.gz
android_frameworks_webview-6adc8a2e72d90b3a5c1cf7cf7ec7be2f6c974851.tar.bz2
android_frameworks_webview-6adc8a2e72d90b3a5c1cf7cf7ec7be2f6c974851.zip
Merge scripts: allow merging to non-master branches.
Add a --target parameter to merge_to_master.py to allow merging code from master-chromium to any target branch which was branched from master (such as a -dev branch). Change-Id: I4d318d1d9650489b2abe2faf7076675fd01a90d8
Diffstat (limited to 'chromium/tools')
-rwxr-xr-xchromium/tools/merge_to_master.py46
1 files changed, 26 insertions, 20 deletions
diff --git a/chromium/tools/merge_to_master.py b/chromium/tools/merge_to_master.py
index b90390a..f50448b 100755
--- a/chromium/tools/merge_to_master.py
+++ b/chromium/tools/merge_to_master.py
@@ -29,8 +29,8 @@ import merge_common
AUTOGEN_MESSAGE = 'This commit was generated by merge_to_master.py.'
-def _MergeProjects(svn_revision):
- """Merges the Chromium projects from master-chromium to master.
+def _MergeProjects(svn_revision, target):
+ """Merges the Chromium projects from master-chromium to target.
The larger projects' histories are flattened in the process.
@@ -42,8 +42,8 @@ def _MergeProjects(svn_revision):
merge_common.GetCommandStdout(['git', 'remote', 'update',
'goog', 'history'], cwd=dest_dir)
merge_common.GetCommandStdout(['git', 'checkout',
- '-b', 'merge-to-master',
- '-t', 'goog/master'], cwd=dest_dir)
+ '-b', 'merge-to-' + target,
+ '-t', 'goog/' + target], cwd=dest_dir)
merge_common.GetCommandStdout(['git', 'fetch', 'history',
'refs/archive/chromium-%s' % svn_revision],
cwd=dest_dir)
@@ -89,8 +89,8 @@ def _MergeProjects(svn_revision):
merge_common.GetCommandStdout(['git', 'remote', 'update', 'goog'],
cwd=dest_dir)
merge_common.GetCommandStdout(['git', 'checkout',
- '-b', 'merge-to-master',
- '-t', 'goog/master'], cwd=dest_dir)
+ '-b', 'merge-to-' + target,
+ '-t', 'goog/' + target], cwd=dest_dir)
merge_common.GetCommandStdout(['git', 'fetch', 'goog',
'refs/archive/chromium-%s' % svn_revision],
cwd=dest_dir)
@@ -118,7 +118,7 @@ def _GetSVNRevision(commitish='history/master-chromium'):
return svn_revision
-def _MergeWithRepoProp(repo_prop_file):
+def _MergeWithRepoProp(repo_prop_file, target):
chromium_sha = None
webview_sha = None
with open(repo_prop_file) as prop:
@@ -134,14 +134,14 @@ def _MergeWithRepoProp(repo_prop_file):
chromium_revision = _GetSVNRevision(chromium_sha)
logging.info('Merging Chromium at r%s and WebView at %s', chromium_revision,
webview_sha)
- _MergeProjects(chromium_revision)
+ _MergeProjects(chromium_revision, target)
dest_dir = os.path.join(os.environ['ANDROID_BUILD_TOP'], 'frameworks/webview')
merge_common.GetCommandStdout(['git', 'remote', 'update', 'goog'],
cwd=dest_dir)
merge_common.GetCommandStdout(['git', 'checkout',
- '-b', 'merge-to-master',
- '-t', 'goog/master'], cwd=dest_dir)
+ '-b', 'merge-to-' + target,
+ '-t', 'goog/' + target], cwd=dest_dir)
if merge_common.GetCommandStdout(['git', 'rev-list', '-1',
'HEAD..' + webview_sha], cwd=dest_dir):
logging.debug('Creating merge for framework...')
@@ -150,10 +150,10 @@ def _MergeWithRepoProp(repo_prop_file):
webview_sha], cwd=dest_dir,
ignore_errors=True)
merge_common.CheckNoConflictsAndCommitMerge(
- 'Merge master-chromium into master at r%s\n\n%s' %
- (chromium_revision, AUTOGEN_MESSAGE), cwd=dest_dir)
+ 'Merge master-chromium into %s at r%s\n\n%s' %
+ (target, chromium_revision, AUTOGEN_MESSAGE), cwd=dest_dir)
upload = merge_common.GetCommandStdout(['git', 'push', 'goog',
- 'HEAD:refs/for/master'],
+ 'HEAD:refs/for/' + target],
cwd=dest_dir)
logging.info(upload)
else:
@@ -161,9 +161,10 @@ def _MergeWithRepoProp(repo_prop_file):
return 0
-def Push():
+def Push(target):
"""Push the finished snapshot to the Android repository."""
logging.debug('Pushing to server ...')
+ refspec = 'merge-to-%s:%s' % (target, target)
for path in merge_common.ALL_PROJECTS:
logging.debug('Pushing %s', path)
dest_dir = os.path.join(merge_common.REPOSITORY_ROOT, path)
@@ -172,8 +173,8 @@ def Push():
graftfile = os.path.join(dest_dir, '.git', 'info', 'grafts')
if os.path.exists(graftfile):
os.remove(graftfile)
- merge_common.GetCommandStdout(['git', 'push', 'goog',
- 'merge-to-master:master'], cwd=dest_dir)
+ merge_common.GetCommandStdout(['git', 'push', 'goog', refspec],
+ cwd=dest_dir)
@@ -195,6 +196,10 @@ def main():
'', '--push',
default=False, action='store_true',
help=('Push the result of a previous merge to the server.'))
+ parser.add_option(
+ '', '--target',
+ default='master', metavar='BRANCH',
+ help=('Target branch to push to. Defaults to master.'))
(options, args) = parser.parse_args()
if args:
parser.print_help()
@@ -204,14 +209,15 @@ def main():
stream=sys.stdout)
if options.push:
- Push()
+ Push(options.target)
elif options.repo_prop:
- return _MergeWithRepoProp(os.path.expanduser(options.repo_prop))
+ return _MergeWithRepoProp(os.path.expanduser(options.repo_prop),
+ options.target)
elif options.svn_revision:
- _MergeProjects(options.svn_revision)
+ _MergeProjects(options.svn_revision, options.target)
else:
svn_revision = _GetSVNRevision()
- _MergeProjects(svn_revision)
+ _MergeProjects(svn_revision, options.target)
return 0