@@ -243,12 +243,11 @@ class GitSM(Git):
ret = self.process_submodules(ud, ud.destdir, unpack_submodules, d)
if not ud.bareclone and ret:
- # All submodules should already be downloaded and configured in the tree. This simply
- # sets up the configuration and checks out the files. The main project config should
- # remain unmodified, and no download from the internet should occur. As such, lfs smudge
- # should also be skipped as these files were already smudged in the fetch stage if lfs
- # was enabled.
- runfetchcmd("GIT_LFS_SKIP_SMUDGE=1 %s submodule update --recursive --no-fetch" % (ud.basecmd), d, quiet=True, workdir=ud.destdir)
+ cmdprefix = ""
+ # Avoid LFS smudging (replacing the LFS pointers with the actual content) when LFS shouldn't be used but git-lfs is installed.
+ if not self._need_lfs(ud):
+ cmdprefix = "GIT_LFS_SKIP_SMUDGE=1 "
+ runfetchcmd("%s%s submodule update --recursive --no-fetch" % (cmdprefix, ud.basecmd), d, quiet=True, workdir=ud.destdir)
def clean(self, ud, d):
def clean_submodule(ud, url, module, modpath, workdir, d):
url += ";bareclone=1;nobranch=1"