Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cli: Fix issue with pulumi new and unstaged files #11175

Merged
merged 1 commit into from Oct 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -0,0 +1,4 @@
changes:
- type: fix
scope: cli
description: Hard reset the templates checkout to work around a go-git issue with ignored files.
10 changes: 10 additions & 0 deletions sdk/go/common/util/gitutil/git.go
Expand Up @@ -324,6 +324,16 @@ func gitCloneOrPull(url string, referenceName plumbing.ReferenceName, path strin
return err
}

// There are cases where go-git gets confused about files that were included in .gitignore
// and then later removed from .gitignore and added to the repository, leaving unstaged
// changes in the working directory after a pull. To address this, we'll first do a hard
// reset of the worktree before pulling to ensure it's in a good state.
if err := w.Reset(&git.ResetOptions{
Mode: git.HardReset,
}); err != nil {
return err
}

if cloneErr = w.Pull(&git.PullOptions{
ReferenceName: referenceName,
SingleBranch: true,
Expand Down