diff --git a/pkg/commands/git_commands/rebase.go b/pkg/commands/git_commands/rebase.go index 7abd50027..cd7f4af11 100644 --- a/pkg/commands/git_commands/rebase.go +++ b/pkg/commands/git_commands/rebase.go @@ -400,7 +400,19 @@ func (self *RebaseCommands) SquashAllAboveFixupCommits(commit *models.Commit) er func (self *RebaseCommands) BeginInteractiveRebaseForCommit( commits []*models.Commit, commitIndex int, keepCommitsThatBecomeEmpty bool, ) error { - return self.BeginInteractiveRebaseForCommitRange(commits, commitIndex, commitIndex, keepCommitsThatBecomeEmpty) + if commitIndex < len(commits) && commits[commitIndex].IsMerge() { + if self.config.NeedsGpgSubprocessForCommit() { + return errors.New(self.Tr.DisabledForGPG) + } + + return self.PrepareInteractiveRebaseCommand(PrepareInteractiveRebaseCommandOpts{ + baseHashOrRoot: getBaseHashOrRoot(commits, commitIndex), + instruction: daemon.NewInsertBreakInstruction(), + keepCommitsThatBecomeEmpty: keepCommitsThatBecomeEmpty, + }).Run() + } else { + return self.BeginInteractiveRebaseForCommitRange(commits, commitIndex, commitIndex, keepCommitsThatBecomeEmpty) + } } func (self *RebaseCommands) BeginInteractiveRebaseForCommitRange( diff --git a/pkg/integration/tests/interactive_rebase/reword_merge_commit.go b/pkg/integration/tests/interactive_rebase/reword_merge_commit.go index e4c1ee210..6c0969066 100644 --- a/pkg/integration/tests/interactive_rebase/reword_merge_commit.go +++ b/pkg/integration/tests/interactive_rebase/reword_merge_commit.go @@ -40,17 +40,11 @@ var RewordMergeCommit = NewIntegrationTest(NewIntegrationTestArgs{ Type("renamed merge"). Confirm() }). - /* EXPECTED: Lines( Contains("CI ◯ two"), Contains("CI ⏣─╮ renamed merge").IsSelected(), Contains("CI │ ◯ one"), Contains("CI ◯ ╯ base"), ) - ACTUAL: */ - Tap(func() { - t.ExpectPopup().Alert().Title(Equals("Error")). - Content(Contains("error: 'edit' does not accept merge commits")) - }) }, })