Only fetch current branch on shallow clients
Fetching a new branch on a shallow client may download the entire
project history, as the depth parameter is not passed to git
fetch. Force the fetch to only download the current branch.
Change-Id: Ie17ce8eb5e3487c24d90b2cae8227319dea482c8
diff --git a/project.py b/project.py
index dec21ab..a6a8860 100644
--- a/project.py
+++ b/project.py
@@ -1593,6 +1593,13 @@
# There is no such persistent revision. We have to fetch it.
return False
+ if self.clone_depth:
+ depth = self.clone_depth
+ else:
+ depth = self.manifest.manifestProject.config.GetString('repo.depth')
+ if depth:
+ current_branch_only = True
+
if current_branch_only:
if ID_RE.match(self.revisionExpr) is not None:
is_sha1 = True
@@ -1656,10 +1663,6 @@
# The --depth option only affects the initial fetch; after that we'll do
# full fetches of changes.
- if self.clone_depth:
- depth = self.clone_depth
- else:
- depth = self.manifest.manifestProject.config.GetString('repo.depth')
if depth and initial:
cmd.append('--depth=%s' % depth)