aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2018-05-26 23:56:23 +0700
committerShulhan <ms@kilabit.info>2018-05-27 02:34:34 +0700
commit0f902e44e4753fd008582ce3ce9c313da94b8882 (patch)
tree49bbc00100eb94f46e6d116c2819f18c945eaf49
parent5fba90c8a5eaea63137726961428b0691f2583d2 (diff)
downloadbeku-0f902e44e4753fd008582ce3ce9c313da94b8882.tar.xz
package: gitCheckoutVersion: stash change before checking out version
-rw-r--r--package_git.go28
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
}