From 9bc422f1301a54aaabc6ac279989970c4b6f5137 Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Tue, 15 Apr 2014 10:28:56 +0900 Subject: [PATCH] Ignore clone-depth attribute when fetching to a mirror If a manifest includes projects with a clone-depth=1 attribute, and a workspace is initialised from that manifest using the --mirror option, any workspaces initialised and synced from the mirror will fail with: fatal: attempt to fetch/clone from a shallow repository on the projects that had the clone-depth. Ignore the clone-depth attribute when fetching from the remote to a mirror workspace. Thus the mirror will be synched with a complete clone of all the repositories. Change-Id: I638b77e4894f5eda137d31fa6358eec53cf4654a --- project.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/project.py b/project.py index 48fa82b7..876b86ac 100644 --- a/project.py +++ b/project.py @@ -1683,11 +1683,17 @@ class Project(object): is_sha1 = False tag_name = None + depth = None + + # The depth should not be used when fetching to a mirror because + # it will result in a shallow repository that cannot be cloned or + # fetched from. + if not self.manifest.IsMirror: + if self.clone_depth: + depth = self.clone_depth + else: + depth = self.manifest.manifestProject.config.GetString('repo.depth') - if self.clone_depth: - depth = self.clone_depth - else: - depth = self.manifest.manifestProject.config.GetString('repo.depth') if depth: current_branch_only = True