Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions pkg/skaffold/git/gitutil.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,21 +125,21 @@ func syncRepo(ctx context.Context, g Config, opts config.SkaffoldOptions) (strin
return "", SyncDisabledErr(g, repoCacheDir)
}
if _, err := r.Run(ctx, "clone", g.RepoCloneURI, fmt.Sprintf("./%s", hash), "--branch", ref, "--depth", "1"); err != nil {
if strings.Contains(err.Error(), "Could not find remote branch") {
if _, err := r.Run(ctx, "clone", g.RepoCloneURI, fmt.Sprintf("./%s", hash), "--depth", "1"); err != nil {
return "", fmt.Errorf("failed to clone repo: %w", err)
}

r.Dir = repoCacheDir
if _, err := r.Run(ctx, "checkout", ref); err != nil {
if rmErr := os.RemoveAll(repoCacheDir); rmErr != nil {
err = fmt.Errorf("failed to remove repo cache dir: %w", rmErr)
}
// Remove partially created directory before attempting full clone
if rmErr := os.RemoveAll(repoCacheDir); rmErr != nil {
return "", fmt.Errorf("failed to remove partially created repo directory: %w", rmErr)
}
if _, err := r.Run(ctx, "clone", g.RepoCloneURI, fmt.Sprintf("./%s", hash)); err != nil {
return "", fmt.Errorf("failed to clone repo: %w", err)
}

return "", fmt.Errorf("failed to checkout commit: %w", err)
r.Dir = repoCacheDir
if _, err := r.Run(ctx, "checkout", ref); err != nil {
if rmErr := os.RemoveAll(repoCacheDir); rmErr != nil {
err = fmt.Errorf("failed to remove repo cache dir: %w", rmErr)
}
} else {
return "", fmt.Errorf("failed to clone repo: %w", err)

return "", fmt.Errorf("failed to checkout commit: %w", err)
}
}
} else {
Expand Down