| Index: recipe_modules/bot_update/resources/bot_update.py
|
| diff --git a/recipe_modules/bot_update/resources/bot_update.py b/recipe_modules/bot_update/resources/bot_update.py
|
| index fe8dd66ffd0a5eb78b2e218362730cccadc0b8ac..f8ecdb79f217cd2a396b34ab987ac3959aeb0a41 100755
|
| --- a/recipe_modules/bot_update/resources/bot_update.py
|
| +++ b/recipe_modules/bot_update/resources/bot_update.py
|
| @@ -1080,10 +1080,12 @@ def apply_gerrit_ref(gerrit_repo, gerrit_ref, root, gerrit_reset,
|
| gerrit_rebase_patch_ref):
|
| gerrit_repo = gerrit_repo or 'origin'
|
| assert gerrit_ref
|
| + base_rev = git('rev-parse', 'HEAD', cwd=root).strip()
|
| +
|
| print '===Applying gerrit ref==='
|
| - print 'Repo is %r, ref is %r, root is %r' % (gerrit_repo, gerrit_ref, root)
|
| + print 'Repo is %r @ %r, ref is %r, root is %r' % (
|
| + gerrit_repo, base_rev, gerrit_ref, root)
|
| try:
|
| - base_rev = git('rev-parse', 'HEAD', cwd=root).strip()
|
| git('retry', 'fetch', gerrit_repo, gerrit_ref, cwd=root, tries=1)
|
| git('checkout', 'FETCH_HEAD', cwd=root)
|
|
|
| @@ -1282,6 +1284,7 @@ def ensure_checkout(solutions, revisions, first_sln, target_os, target_os_only,
|
| print '===Processing patch solutions==='
|
| already_patched = []
|
| patch_root = patch_root or ''
|
| + applied_gerrit_patch = False
|
| print 'Patch root is %r' % patch_root
|
| for solution in solutions:
|
| print 'Processing solution %r' % solution['name']
|
| @@ -1298,9 +1301,10 @@ def ensure_checkout(solutions, revisions, first_sln, target_os, target_os_only,
|
| revision_mapping, git_ref, apply_issue_email_file,
|
| apply_issue_key_file, whitelist=[target])
|
| already_patched.append(target)
|
| - elif gerrit_ref and gerrit_rebase_patch_ref:
|
| + elif gerrit_ref:
|
| apply_gerrit_ref(gerrit_repo, gerrit_ref, patch_root, gerrit_reset,
|
| - True)
|
| + gerrit_rebase_patch_ref)
|
| + applied_gerrit_patch = True
|
|
|
| # Ensure our build/ directory is set up with the correct .gclient file.
|
| gclient_configure(solutions, target_os, target_os_only, git_cache_dir)
|
| @@ -1334,8 +1338,12 @@ def ensure_checkout(solutions, revisions, first_sln, target_os, target_os_only,
|
| apply_rietveld_issue(issue, patchset, patch_root, rietveld_server,
|
| revision_mapping, git_ref, apply_issue_email_file,
|
| apply_issue_key_file, blacklist=already_patched)
|
| - elif gerrit_ref and not gerrit_rebase_patch_ref:
|
| - apply_gerrit_ref(gerrit_repo, gerrit_ref, patch_root, gerrit_reset, False)
|
| + elif gerrit_ref and not applied_gerrit_patch:
|
| + # If gerrit_ref was for solution's main repository, it has already been
|
| + # applied above. This chunk is executed only for patches to DEPS-ed in
|
| + # git repositories.
|
| + apply_gerrit_ref(gerrit_repo, gerrit_ref, patch_root, gerrit_reset,
|
| + gerrit_rebase_patch_ref)
|
|
|
| # Reset the deps_file point in the solutions so that hooks get run properly.
|
| for sln in solutions:
|
|
|