1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-06-17 00:18:05 +02:00

Fix git stash calls for older git versions

Older git versions are pickier about parameter order: for "store", the sha
argument must come last, and for "save", the message must come last.
This commit is contained in:
Stefan Haller
2023-07-01 16:18:38 +02:00
parent ea0baf58e6
commit 1827380c69
2 changed files with 6 additions and 5 deletions

View File

@ -63,8 +63,9 @@ func (self *StashCommands) Save(message string) error {
func (self *StashCommands) Store(sha string, message string) error { func (self *StashCommands) Store(sha string, message string) error {
trimmedMessage := strings.Trim(message, " \t") trimmedMessage := strings.Trim(message, " \t")
cmdArgs := NewGitCmd("stash").Arg("store", sha). cmdArgs := NewGitCmd("stash").Arg("store").
ArgIf(trimmedMessage != "", "-m", trimmedMessage). ArgIf(trimmedMessage != "", "-m", trimmedMessage).
Arg(sha).
ToArgv() ToArgv()
return self.cmd.New(cmdArgs).Run() return self.cmd.New(cmdArgs).Run()
@ -93,7 +94,7 @@ func (self *StashCommands) ShowStashEntryCmdObj(index int, ignoreWhitespace bool
} }
func (self *StashCommands) StashAndKeepIndex(message string) error { func (self *StashCommands) StashAndKeepIndex(message string) error {
cmdArgs := NewGitCmd("stash").Arg("save", message, "--keep-index"). cmdArgs := NewGitCmd("stash").Arg("save", "--keep-index", message).
ToArgv() ToArgv()
return self.cmd.New(cmdArgs).Run() return self.cmd.New(cmdArgs).Run()
@ -171,7 +172,7 @@ func (self *StashCommands) SaveStagedChanges(message string) error {
func (self *StashCommands) StashIncludeUntrackedChanges(message string) error { func (self *StashCommands) StashIncludeUntrackedChanges(message string) error {
return self.cmd.New( return self.cmd.New(
NewGitCmd("stash").Arg("save", message, "--include-untracked"). NewGitCmd("stash").Arg("save", "--include-untracked", message).
ToArgv(), ToArgv(),
).Run() ).Run()
} }

View File

@ -57,7 +57,7 @@ func TestStashStore(t *testing.T) {
testName: "Non-empty message", testName: "Non-empty message",
sha: "0123456789abcdef", sha: "0123456789abcdef",
message: "New stash name", message: "New stash name",
expected: []string{"stash", "store", "0123456789abcdef", "-m", "New stash name"}, expected: []string{"stash", "store", "-m", "New stash name", "0123456789abcdef"},
}, },
{ {
testName: "Empty message", testName: "Empty message",
@ -162,7 +162,7 @@ func TestStashRename(t *testing.T) {
expectedShaCmd: []string{"rev-parse", "refs/stash@{3}"}, expectedShaCmd: []string{"rev-parse", "refs/stash@{3}"},
shaResult: "f0d0f20f2f61ffd6d6bfe0752deffa38845a3edd\n", shaResult: "f0d0f20f2f61ffd6d6bfe0752deffa38845a3edd\n",
expectedDropCmd: []string{"stash", "drop", "stash@{3}"}, expectedDropCmd: []string{"stash", "drop", "stash@{3}"},
expectedStoreCmd: []string{"stash", "store", "f0d0f20f2f61ffd6d6bfe0752deffa38845a3edd", "-m", "New message"}, expectedStoreCmd: []string{"stash", "store", "-m", "New message", "f0d0f20f2f61ffd6d6bfe0752deffa38845a3edd"},
}, },
{ {
testName: "Empty message", testName: "Empty message",