Skip to content
This repository has been archived by the owner on Jan 8, 2024. It is now read-only.

Commit

Permalink
internal/datasource: don't set recurse submodule on clone
Browse files Browse the repository at this point in the history
  • Loading branch information
mitchellh committed May 17, 2022
1 parent 9fd2916 commit 94fd3db
Showing 1 changed file with 31 additions and 20 deletions.
51 changes: 31 additions & 20 deletions internal/datasource/git.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,10 +185,14 @@ func (s *GitSource) Get(
// Clone
var output bytes.Buffer
repo, err := git.PlainCloneContext(ctx, td, false, &git.CloneOptions{
URL: source.Git.Url,
Auth: auth,
Progress: &output,
RecurseSubmodules: git.SubmoduleRescursivity(source.Git.RecurseSubmodules),
URL: source.Git.Url,
Auth: auth,
Progress: &output,

// Note: we don't set RecurseSubmodules here because if we're checking
// out a ref without submodules or with different submodules, we
// don't want to waste time recursing HEAD. We fetch submodules
// later.
})
if err != nil {
closer()
Expand Down Expand Up @@ -236,24 +240,31 @@ func (s *GitSource) Get(
return "", nil, nil, status.Errorf(codes.Aborted,
"Git checkout failed: %s", err)
}
}

if depth := source.Git.RecurseSubmodules; depth > 0 {
sm, err := wt.Submodules()
if err != nil {
closer()
return "", nil, nil, status.Errorf(codes.Aborted,
"Failed to load submodules: %s", err)
}
if depth := source.Git.RecurseSubmodules; depth > 0 {
wt, err := repo.Worktree()
if err != nil {
closer()
return "", nil, nil, status.Errorf(codes.Aborted,
"Failed to load Git working tree: %s", err)
}

if err := sm.UpdateContext(ctx, &git.SubmoduleUpdateOptions{
Init: true,
Auth: auth,
RecurseSubmodules: git.SubmoduleRescursivity(depth),
}); err != nil {
closer()
return "", nil, nil, status.Errorf(codes.Aborted,
"Failed to update submodules: %s", err)
}
sm, err := wt.Submodules()
if err != nil {
closer()
return "", nil, nil, status.Errorf(codes.Aborted,
"Failed to load submodules: %s", err)
}

if err := sm.UpdateContext(ctx, &git.SubmoduleUpdateOptions{
Init: true,
Auth: auth,
RecurseSubmodules: git.SubmoduleRescursivity(depth),
}); err != nil {
closer()
return "", nil, nil, status.Errorf(codes.Aborted,
"Failed to update submodules: %s", err)
}
}

Expand Down

0 comments on commit 94fd3db

Please sign in to comment.