1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-02-03 13:21:56 +02:00

Better error message when trying to amend a commit other than head during rebase

This commit is contained in:
Stefan Haller 2023-03-20 13:13:43 +01:00
parent e7d0116312
commit d508badd62
3 changed files with 48 additions and 0 deletions

View File

@ -452,6 +452,10 @@ func (self *LocalCommitsController) amendTo(commit *models.Commit) error {
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
}
if self.git.Status.WorkingTreeState() != enums.REBASE_MODE_NONE {
return self.c.ErrorMsg(self.c.Tr.AlreadyRebasing)
}
return self.c.Confirm(types.ConfirmOpts{
Title: self.c.Tr.AmendCommitTitle,
Prompt: self.c.Tr.AmendCommitPrompt,

View File

@ -0,0 +1,43 @@
package interactive_rebase
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var AmendNonHeadCommitDuringRebase = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Tries to amend a commit that is not the head while already rebasing, resulting in an error message",
ExtraCmdArgs: "",
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
shell.CreateNCommits(3)
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
t.Views().Commits().
Focus().
Lines(
Contains("commit 03"),
Contains("commit 02"),
Contains("commit 01"),
).
NavigateToLine(Contains("commit 02")).
Press(keys.Universal.Edit).
Lines(
Contains("commit 03"),
Contains("<-- YOU ARE HERE --- commit 02"),
Contains("commit 01"),
)
for _, commit := range []string{"commit 01", "commit 03"} {
t.Views().Commits().
NavigateToLine(Contains(commit)).
Press(keys.Commits.AmendToCommit)
t.ExpectPopup().Alert().
Title(Equals("Error")).
Content(Contains("Can't perform this action during a rebase")).
Confirm()
}
},
})

View File

@ -84,6 +84,7 @@ var tests = []*components.IntegrationTest{
interactive_rebase.AmendFirstCommit,
interactive_rebase.AmendHeadCommitDuringRebase,
interactive_rebase.AmendMerge,
interactive_rebase.AmendNonHeadCommitDuringRebase,
interactive_rebase.EditFirstCommit,
interactive_rebase.EditNonTodoCommitDuringRebase,
interactive_rebase.FixupFirstCommit,