diff options
| author | Shulhan <ms@kilabit.info> | 2018-05-26 23:56:23 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2018-05-27 02:34:34 +0700 |
| commit | 0f902e44e4753fd008582ce3ce9c313da94b8882 (patch) | |
| tree | 49bbc00100eb94f46e6d116c2819f18c945eaf49 | |
| parent | 5fba90c8a5eaea63137726961428b0691f2583d2 (diff) | |
| download | beku-0f902e44e4753fd008582ce3ce9c313da94b8882.tar.xz | |
package: gitCheckoutVersion: stash change before checking out version
| -rw-r--r-- | package_git.go | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/package_git.go b/package_git.go index 66b9c37..ba2af99 100644 --- a/package_git.go +++ b/package_git.go @@ -14,22 +14,42 @@ import ( // gitCheckoutVersion will set the HEAD to version stated in package. // func (pkg *Package) gitCheckoutVersion(version string) (err error) { - //nolint:gas - cmd := exec.Command("git", "checkout", "-q", version) + cmd := exec.Command("git", "stash", "push", "-q") cmd.Dir = pkg.FullPath cmd.Stdout = defStdout cmd.Stderr = defStderr - if Debug >= DebugL1 { - fmt.Printf(">>> %s %s\n", cmd.Dir, cmd.Args) + fmt.Printf(">>> %s %s\n", cmd.Dir, cmd.Args) + + err = cmd.Run() + if err != nil { + err = fmt.Errorf("gitCheckoutVersion %s: %s", pkg.FullPath, err) + return } + //nolint:gas + cmd = exec.Command("git", "checkout", "-q", version) + cmd.Dir = pkg.FullPath + cmd.Stdout = defStdout + cmd.Stderr = defStderr + + fmt.Printf(">>> %s %s\n", cmd.Dir, cmd.Args) + err = cmd.Run() if err != nil { err = fmt.Errorf("gitCheckoutVersion %s: %s", pkg.FullPath, err) return } + cmd = exec.Command("git", "stash", "pop", "-q") + cmd.Dir = pkg.FullPath + cmd.Stdout = defStdout + cmd.Stderr = defStderr + + fmt.Printf(">>> %s %s\n", cmd.Dir, cmd.Args) + + _ = cmd.Run() + return } |
