From e8f9bdc1976b40ab0c5fbf407a63a76a95856551 Mon Sep 17 00:00:00 2001 From: Andrew Grieve Date: Wed, 9 Feb 2022 21:05:12 +0000 Subject: [PATCH] Fix "gclient sync" not recursing nested repo set as @unmanaged in custom_deps Bug: 1031185 Change-Id: I09ba4dcc0aaf67d08e1526bd80b036225fe59e74 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1959814 Reviewed-by: Josip Sokcevic Commit-Queue: Andrew Grieve Auto-Submit: Andrew Grieve --- gclient.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gclient.py b/gclient.py index 6b5fa3f269..e75b94ef21 100755 --- a/gclient.py +++ b/gclient.py @@ -618,7 +618,13 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): # this line to the solution. for dep_name, dep_info in self.custom_deps.items(): if dep_name not in deps: - deps[dep_name] = {'url': dep_info, 'dep_type': 'git'} + # Don't add it to the solution for the values of "None" and "unmanaged" + # in order to force these kinds of custom_deps to act as revision + # overrides (via revision_overrides). Having them function as revision + # overrides allows them to be applied to recursive dependencies. + # https://crbug.com/1031185 + if dep_info and not dep_info.endswith('@unmanaged'): + deps[dep_name] = {'url': dep_info, 'dep_type': 'git'} # Make child deps conditional on any parent conditions. This ensures that, # when flattened, recursed entries have the correct restrictions, even if