summaryrefslogtreecommitdiffstats
path: root/chromium/tools
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2013-05-02 11:33:14 +0100
committerTorne (Richard Coles) <torne@google.com>2013-05-02 11:33:14 +0100
commit3b1480d1d7d07cb989630cd5767f439dd3f5fabd (patch)
tree0445646b8a190e2a4215cd0d28abf90be49bd70a /chromium/tools
parent9612201c958e023b34f25b5401e90990b39bba5b (diff)
downloadandroid_frameworks_webview-3b1480d1d7d07cb989630cd5767f439dd3f5fabd.tar.gz
android_frameworks_webview-3b1480d1d7d07cb989630cd5767f439dd3f5fabd.tar.bz2
android_frameworks_webview-3b1480d1d7d07cb989630cd5767f439dd3f5fabd.zip
automerger: push archived revisions and fix a bug.
When we push a merge successfully, also push a new ref under refs/archive/chromium-* with the revision number. This allows specific past merge points to be checked out across all chromium_org/* projects correctly. We were also incorrectly using git push -f even for pushing to master-chromium, which could cause downstream changes to be lost; instead of using -f just specify the + prefix on the refs we want to allow non-fast-forward updates. Change-Id: Ide846f2213228b721f90db544f33be268f47759b
Diffstat (limited to 'chromium/tools')
-rwxr-xr-xchromium/tools/merge_from_chromium.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/chromium/tools/merge_from_chromium.py b/chromium/tools/merge_from_chromium.py
index 40ab260..cffd044 100755
--- a/chromium/tools/merge_from_chromium.py
+++ b/chromium/tools/merge_from_chromium.py
@@ -441,8 +441,14 @@ def Snapshot(svn_revision, root_sha1, unattended):
def Push(svn_revision):
"""Push the finished snapshot to the Android repository."""
src = 'merge-from-chromium-%s' % svn_revision
- for branch in ['master-chromium-merge', 'master-chromium']:
- logging.debug('Pushing to server (%s) ...' % branch)
+ # Use forced pushes ('+' prefix) for the temporary and archive branches in
+ # case they already got updated by a previous (possibly failed?) merge, but
+ # do not force push to the real master-chromium branch as this could erase
+ # downstream changes.
+ for refspec in ['+%s:master-chromium-merge' % src,
+ '%s:master-chromium' % src,
+ '+%s:refs/archive/chromium-%s' % (src, svn_revision)]:
+ logging.debug('Pushing to server (%s) ...' % refspec)
for path in merge_common.ALL_PROJECTS:
if path in merge_common.PROJECTS_WITH_FLAT_HISTORY:
remote = 'history'
@@ -450,8 +456,8 @@ def Push(svn_revision):
remote = 'goog'
logging.debug('Pushing %s', path)
dest_dir = os.path.join(merge_common.REPOSITORY_ROOT, path)
- merge_common.GetCommandStdout(['git', 'push', '-f', remote,
- src + ':' + branch], cwd=dest_dir)
+ merge_common.GetCommandStdout(['git', 'push', remote, refspec],
+ cwd=dest_dir)
def main():