mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-25 12:24:47 +02:00
Better error message when trying to amend a commit other than head during rebase
This commit is contained in:
parent
e7d0116312
commit
d508badd62
@ -452,6 +452,10 @@ func (self *LocalCommitsController) amendTo(commit *models.Commit) error {
|
|||||||
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
|
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{
|
return self.c.Confirm(types.ConfirmOpts{
|
||||||
Title: self.c.Tr.AmendCommitTitle,
|
Title: self.c.Tr.AmendCommitTitle,
|
||||||
Prompt: self.c.Tr.AmendCommitPrompt,
|
Prompt: self.c.Tr.AmendCommitPrompt,
|
||||||
|
@ -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()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
@ -84,6 +84,7 @@ var tests = []*components.IntegrationTest{
|
|||||||
interactive_rebase.AmendFirstCommit,
|
interactive_rebase.AmendFirstCommit,
|
||||||
interactive_rebase.AmendHeadCommitDuringRebase,
|
interactive_rebase.AmendHeadCommitDuringRebase,
|
||||||
interactive_rebase.AmendMerge,
|
interactive_rebase.AmendMerge,
|
||||||
|
interactive_rebase.AmendNonHeadCommitDuringRebase,
|
||||||
interactive_rebase.EditFirstCommit,
|
interactive_rebase.EditFirstCommit,
|
||||||
interactive_rebase.EditNonTodoCommitDuringRebase,
|
interactive_rebase.EditNonTodoCommitDuringRebase,
|
||||||
interactive_rebase.FixupFirstCommit,
|
interactive_rebase.FixupFirstCommit,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user