From b97df057c1d02127f0ea3da63ef7886189b2180f Mon Sep 17 00:00:00 2001 From: Pieter Vincken <4153479+pietervincken@users.noreply.github.com> Date: Tue, 9 Jun 2020 16:35:09 +0200 Subject: [PATCH] feat: re-introduce shallow git clones Making full git clones slows down the kustomize build significantly for big repositories. --- api/internal/git/cloner.go | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/api/internal/git/cloner.go b/api/internal/git/cloner.go index e3696db3e..8b420b62b 100644 --- a/api/internal/git/cloner.go +++ b/api/internal/git/cloner.go @@ -4,7 +4,6 @@ package git import ( - "log" "os/exec" "github.com/pkg/errors" @@ -33,25 +32,36 @@ func ClonerUsingGitExec(repoSpec *RepoSpec) error { cmd := exec.Command( gitProgram, "clone", + "--depth=1", repoSpec.CloneSpec(), repoSpec.Dir.String()) - out, err := cmd.CombinedOutput() + _, err = cmd.CombinedOutput() if err != nil { - log.Printf("Error cloning git repo: %s", out) return errors.Wrapf( err, "trouble cloning git repo %v in %s", repoSpec.CloneSpec(), repoSpec.Dir.String()) } + cmd = exec.Command( + gitProgram, + "fetch", + "--depth=1", + "origin", + repoSpec.Ref) + cmd.Dir = repoSpec.Dir.String() + _, err = cmd.CombinedOutput() + if err != nil { + return errors.Wrapf(err, "trouble fetching %s", repoSpec.Ref) + } + cmd = exec.Command( gitProgram, "checkout", repoSpec.Ref) cmd.Dir = repoSpec.Dir.String() - out, err = cmd.CombinedOutput() + _, err = cmd.CombinedOutput() if err != nil { - log.Printf("Error checking out ref: %s", out) return errors.Wrapf(err, "trouble checking out %s", repoSpec.Ref) } @@ -62,9 +72,8 @@ func ClonerUsingGitExec(repoSpec *RepoSpec) error { "--init", "--recursive") cmd.Dir = repoSpec.Dir.String() - out, err = cmd.CombinedOutput() + _, err = cmd.CombinedOutput() if err != nil { - log.Printf("Error fetching submodules: %s", out) return errors.Wrapf(err, "trouble fetching submodules for %s", repoSpec.CloneSpec()) }