diff options
Diffstat (limited to 'bitbake/lib/bb/fetch2/git.py')
-rw-r--r-- | bitbake/lib/bb/fetch2/git.py | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py index 51259df93f..15858a6241 100644 --- a/bitbake/lib/bb/fetch2/git.py +++ b/bitbake/lib/bb/fetch2/git.py | |||
@@ -476,14 +476,27 @@ class Git(FetchMethod): | |||
476 | if os.path.exists(destdir): | 476 | if os.path.exists(destdir): |
477 | bb.utils.prunedir(destdir) | 477 | bb.utils.prunedir(destdir) |
478 | 478 | ||
479 | clonedir_is_up_to_date = not self.clonedir_need_update(ud, d) | 479 | source_found = False |
480 | if clonedir_is_up_to_date: | 480 | source_error = [] |
481 | runfetchcmd("%s clone %s %s/ %s" % (ud.basecmd, ud.cloneflags, ud.clonedir, destdir), d) | 481 | |
482 | elif ud.shallow and os.path.exists(ud.fullshallow): | 482 | if not source_found: |
483 | bb.utils.mkdirhier(destdir) | 483 | clonedir_is_up_to_date = not self.clonedir_need_update(ud, d) |
484 | runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=destdir) | 484 | if clonedir_is_up_to_date: |
485 | else: | 485 | runfetchcmd("%s clone %s %s/ %s" % (ud.basecmd, ud.cloneflags, ud.clonedir, destdir), d) |
486 | raise bb.fetch2.UnpackError("No up to date source found", ud.url) | 486 | source_found = True |
487 | else: | ||
488 | source_error.append("clone directory not available or not up to date: " + ud.clonedir) | ||
489 | |||
490 | if not source_found: | ||
491 | if ud.shallow and os.path.exists(ud.fullshallow): | ||
492 | bb.utils.mkdirhier(destdir) | ||
493 | runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=destdir) | ||
494 | source_found = True | ||
495 | else: | ||
496 | source_error.append("shallow clone not enabled or not available: " + ud.fullshallow) | ||
497 | |||
498 | if not source_found: | ||
499 | raise bb.fetch2.UnpackError("No up to date source found: " + "; ".join(source_error), ud.url) | ||
487 | 500 | ||
488 | repourl = self._get_repo_url(ud) | 501 | repourl = self._get_repo_url(ud) |
489 | runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir) | 502 | runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir) |