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

Unified Diff: gclient.py

Issue 19359002: Allow gclient clone in non-empty directories (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 7 years, 5 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 | gclient_scm.py » ('j') | gclient_scm.py » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gclient.py
diff --git a/gclient.py b/gclient.py
index ed08e47f423cb96bbd6ba9c9ca2902cbc394cc62..9c4077153edbc41fe0155d5408dd3c27c5c84b53 100755
--- a/gclient.py
+++ b/gclient.py
@@ -288,7 +288,8 @@ class Dependency(gclient_utils.WorkItem, DependencySettings):
"""Object that represents a dependency checkout."""
def __init__(self, parent, name, url, safesync_url, managed, custom_deps,
- custom_vars, custom_hooks, deps_file, should_process):
+ custom_vars, custom_hooks, deps_file, should_process,
+ tmpdir_stage):
gclient_utils.WorkItem.__init__(self, name)
DependencySettings.__init__(
self, parent, url, safesync_url, managed, custom_deps, custom_vars,
@@ -313,6 +314,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings):
# This is the scm used to checkout self.url. It may be used by dependencies
# to get the datetime of the revision we checked out.
self._used_scm = None
+ self.tmpdir_stage = tmpdir_stage
if not self.name and self.parent:
raise gclient_utils.Error('Dependency without name')
@@ -500,6 +502,8 @@ class Dependency(gclient_utils.WorkItem, DependencySettings):
self.local_target_os = local_scope['target_os']
# load os specific dependencies if defined. these dependencies may
# override or extend the values defined by the 'deps' member.
+
+ tmpdir_staged_deps = local_scope.get('tmpdir_stage', [])
target_os_deps = {}
if 'deps_os' in local_scope:
for deps_os_key in self.target_os:
@@ -541,7 +545,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings):
should_process = self.recursion_limit and self.should_process
deps_to_add.append(Dependency(
self, name, url, None, None, None, None, None,
- self.deps_file, should_process))
+ self.deps_file, should_process, name in tmpdir_staged_deps))
deps_to_add.sort(key=lambda x: x.name)
# override named sets of hooks by the custom hooks
@@ -632,6 +636,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings):
# Create a shallow copy to mutate revision.
options = copy.copy(options)
options.revision = revision_overrides.get(self.name)
+ options.stage_clone = self.tmpdir_stage
self.maybeGetParentRevision(
command, options, parsed_url, self.parent.name, revision_overrides)
self._used_scm = gclient_scm.CreateSCM(
« no previous file with comments | « no previous file | gclient_scm.py » ('j') | gclient_scm.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698