Skip to content
This repository has been archived by the owner on Sep 9, 2020. It is now read-only.

Commit

Permalink
gps: unset some GIT_* variables for git operations
Browse files Browse the repository at this point in the history
This fixes 2 classes of bugs:
- running unit tests as part of a git rebase invocation
- running dep from a repository that has a separate GIT_DIR/GIT_WORK_TREE
  • Loading branch information
sigma committed May 22, 2018
1 parent 3e697f6 commit 82c576a
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions gps/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

package gps

import (
"os"
)

func (c cmd) Args() []string {
return c.Cmd.Args
}
Expand All @@ -15,3 +19,15 @@ func (c cmd) SetDir(dir string) {
func (c cmd) SetEnv(env []string) {
c.Cmd.Env = env
}

func init() {
// For our git repositories, we very much assume a "regular" topology.
// Therefore, no value for the following variables can be relevant to
// us. Unsetting globally properly propagates to libraries like
// github.com/Masterminds/vcs, which cannot make the same assumption in
// general.
parasiteGitVars := []string{"GIT_DIR", "GIT_INDEX_FILE", "GIT_OBJECT_DIRECTORY", "GIT_WORK_TREE"}
for _, e := range parasiteGitVars {
os.Unsetenv(e)
}
}

0 comments on commit 82c576a

Please sign in to comment.