Simply checking the exit code of `git rev-parse --git-dir` should
suffice here, but that requires deviating from the infrastructure
provided by `run`, so I've left that for a future change.
Fixes #11211.
Change-Id: I7cbad86a8a06578f52f66f734f5447b597ddc962
Reviewed-on: https://go-review.googlesource.com/18213
Reviewed-by: Russ Cox <rsc@golang.org>
// isGitRepo reports whether the working directory is inside a Git repository.
func isGitRepo() bool {
- p := ".git"
- for {
- fi, err := os.Stat(p)
- if os.IsNotExist(err) {
- p = filepath.Join("..", p)
- continue
- }
- if err != nil || !fi.IsDir() {
- return false
- }
- return true
- }
+ // NB: simply checking the exit code of `git rev-parse --git-dir` would
+ // suffice here, but that requires deviating from the infrastructure
+ // provided by `run`.
+ gitDir := chomp(run(goroot, 0, "git", "rev-parse", "--git-dir"))
+ fi, err := os.Stat(gitDir)
+ return err == nil && fi.IsDir()
}
/*