| Index: scripts/slave/bot_update.py
|
| diff --git a/scripts/slave/bot_update.py b/scripts/slave/bot_update.py
|
| index 51c79eba4ce9155bb6dbc12ff1670aadfb3ed40b..b066044d9a897635c52f1e8858635c5c5f2bc7b2 100755
|
| --- a/scripts/slave/bot_update.py
|
| +++ b/scripts/slave/bot_update.py
|
| @@ -1257,15 +1257,20 @@ def ensure_checkout(solutions, revisions, first_sln, target_os, target_os_only,
|
| if patch_url:
|
| patches = get_svn_patch(patch_url)
|
|
|
| + already_patched = []
|
| + patch_root = patch_root or ''
|
| for solution in solutions:
|
| - # At first, only patch top-level DEPS.
|
| - if patch_root == solution['name']:
|
| + if (patch_root == solution['name'] or
|
| + solution['name'].startswith(patch_root + '/')):
|
| + relative_root = solution['name'][len(patch_root) + 1:]
|
| + target = '/'.join([relative_root, 'DEPS']).lstrip('/')
|
| if patches:
|
| - apply_svn_patch(patch_root, patches, whitelist=['DEPS'])
|
| + apply_svn_patch(patch_root, patches, whitelist=[target])
|
| + already_patched.append(target)
|
| elif issue:
|
| apply_rietveld_issue(issue, patchset, patch_root, rietveld_server,
|
| - revision_mapping, git_ref, whitelist=['DEPS'])
|
| - break
|
| + revision_mapping, git_ref, whitelist=[target])
|
| + already_patched.append(target)
|
|
|
| if buildspec:
|
| buildspecs2git(first_sln, buildspec)
|
| @@ -1298,10 +1303,10 @@ def ensure_checkout(solutions, revisions, first_sln, target_os, target_os_only,
|
| dir_names, revisions)
|
| # Apply the rest of the patch here (sans DEPS)
|
| if patches:
|
| - apply_svn_patch(patch_root, patches, blacklist=['DEPS'])
|
| + apply_svn_patch(patch_root, patches, blacklist=already_patched)
|
| elif issue:
|
| apply_rietveld_issue(issue, patchset, patch_root, rietveld_server,
|
| - revision_mapping, git_ref, blacklist=['DEPS'])
|
| + revision_mapping, git_ref, blacklist=already_patched)
|
|
|
| # Reset the deps_file point in the solutions so that hooks get run properly.
|
| for sln in solutions:
|
|
|