summaryrefslogtreecommitdiff
path: root/buildstream/plugins/sources/git.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildstream/plugins/sources/git.py')
-rw-r--r--buildstream/plugins/sources/git.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/buildstream/plugins/sources/git.py b/buildstream/plugins/sources/git.py
index 3d10f69f6..97643439e 100644
--- a/buildstream/plugins/sources/git.py
+++ b/buildstream/plugins/sources/git.py
@@ -227,8 +227,14 @@ class GitMirror():
return submodule_commit
else:
- raise SourceError("{}: Failed to read commit information for submodule '{}'"
- .format(self.source, submodule))
+ detail = "The submodule '{}' is defined either in the BuildStream source\n".format(submodule) + \
+ "definition, or in a .gitmodules file. But the submodule was never added to the\n" + \
+ "underlying git repository with `git submodule add`."
+
+ self.source.warn("{}: Ignoring inconsistent submodule '{}'"
+ .format(self.source, submodule), detail=detail)
+
+ return None
class GitSource(Source):
@@ -401,8 +407,9 @@ class GitSource(Source):
url = override_url
ref = self.mirror.submodule_ref(path)
- mirror = GitMirror(self, path, url, ref)
- submodules.append(mirror)
+ if ref is not None:
+ mirror = GitMirror(self, path, url, ref)
+ submodules.append(mirror)
self.submodules = submodules