Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Unified Diff: gclient.py

Issue 11146032: Add recursion=n syntax to DEPS files. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tests/gclient_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gclient.py
diff --git a/gclient.py b/gclient.py
index 9065952bdfd959d56b56dbdf1be77ebfc3dd1c61..ab52cc8eee6098eed83c4ce41dd652606ebf4bea 100644
--- a/gclient.py
+++ b/gclient.py
@@ -168,6 +168,10 @@ class DependencySettings(GClientKeywords):
# recursion limit and controls gclient's behavior so it does not misbehave.
self._managed = managed
self._should_process = should_process
+ # This is a mutable value that overrides the normal recursion limit for this
+ # dependency. It is read from the actual DEPS file so cannot be set on
+ # class instantiation.
+ self.recursion_override = None
# These are only set in .gclient and not in DEPS files.
self._custom_vars = custom_vars or {}
@@ -231,6 +235,8 @@ class DependencySettings(GClientKeywords):
@property
def recursion_limit(self):
"""Returns > 0 if this dependency is not too recursed to be processed."""
+ if self.recursion_override is not None:
+ return self.recursion_override
return max(self.parent.recursion_limit - 1, 0)
def get_custom_deps(self, name, url):
@@ -445,6 +451,10 @@ class Dependency(gclient_utils.WorkItem, DependencySettings):
except SyntaxError, e:
gclient_utils.SyntaxErrorToError(filepath, e)
deps = local_scope.get('deps', {})
+ if 'recursion' in local_scope:
+ self.recursion_override = local_scope.get('recursion')
+ logging.warning(
+ 'Setting %s recursion to %d.', self.name, self.recursion_limit)
# load os specific dependencies if defined. these dependencies may
# override or extend the values defined by the 'deps' member.
if 'deps_os' in local_scope:
« no previous file with comments | « no previous file | tests/gclient_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698