diff options
author | Torne (Richard Coles) <torne@google.com> | 2013-08-07 15:14:42 +0100 |
---|---|---|
committer | Torne (Richard Coles) <torne@google.com> | 2013-08-07 15:14:42 +0100 |
commit | 6adc8a2e72d90b3a5c1cf7cf7ec7be2f6c974851 (patch) | |
tree | e47682ba3443a0f688bf6fa8ae5b2b91ffc3290f /chromium/tools | |
parent | e20af1033cdbf091333cad7b359ed9d25fc6fcbb (diff) | |
download | android_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-x | chromium/tools/merge_to_master.py | 46 |
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 |