summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2023-07-13 17:48:37 +1000
committerJesse Duffield <jessedduffield@gmail.com>2023-07-13 17:48:37 +1000
commit29beecce4ceff0241b180c1a0c0bb64ec4c3a001 (patch)
tree8357c2c29bfbadab6b3e95fe2fc62529530d39db
parent1ded318666aedfa256d0436bce665c8fcfd6a1f2 (diff)
-rw-r--r--pkg/gui/controllers/branches_controller.go10
-rw-r--r--pkg/gui/controllers/global_controller.go2
-rw-r--r--pkg/gui/controllers/helpers/merge_and_rebase_helper.go18
3 files changed, 19 insertions, 11 deletions
diff --git a/pkg/gui/controllers/branches_controller.go b/pkg/gui/controllers/branches_controller.go
index c55a39041..da0be4041 100644
--- a/pkg/gui/controllers/branches_controller.go
+++ b/pkg/gui/controllers/branches_controller.go
@@ -78,11 +78,6 @@ func (self *BranchesController) GetKeybindings(opts types.KeybindingsOpts) []*ty
Description: self.c.Tr.RebaseBranch,
},
{
- Key: opts.GetKey(opts.Config.Branches.MergeIntoCurrentBranch),
- Handler: opts.Guards.OutsideFilterMode(self.merge),
- Description: self.c.Tr.MergeIntoCurrentBranch,
- },
- {
Key: opts.GetKey(opts.Config.Branches.FastForward),
Handler: self.checkSelectedAndReal(self.fastForward),
Description: self.c.Tr.FastForward,
@@ -333,11 +328,6 @@ func (self *BranchesController) deleteWithForce(selectedBranch *models.Branch, f
})
}
-func (self *BranchesController) merge() error {
- selectedBranchName := self.context().GetSelected().Name
- return self.c.Helpers().MergeAndRebase.MergeRefIntoCheckedOutBranch(selectedBranchName)
-}
-
func (self *BranchesController) rebase() error {
selectedBranchName := self.context().GetSelected().Name
return self.c.Helpers().MergeAndRebase.RebaseOntoRef(selectedBranchName)
diff --git a/pkg/gui/controllers/global_controller.go b/pkg/gui/controllers/global_controller.go
index 2942567e8..1b8f7daf3 100644
--- a/pkg/gui/controllers/global_controller.go
+++ b/pkg/gui/controllers/global_controller.go
@@ -34,7 +34,7 @@ func (self *GlobalController) GetKeybindings(opts types.KeybindingsOpts) []*type
},
{
Key: opts.GetKey(opts.Config.Universal.CreateRebaseOptionsMenu),
- Handler: self.c.Helpers().MergeAndRebase.CreateRebaseOptionsMenu,
+ Handler: self.c.Helpers().MergeAndRebase.CreateMergeRebaseOptionsMenu,
Description: self.c.Tr.ViewMergeRebaseOptions,
OpensMenu: true,
},
diff --git a/pkg/gui/controllers/helpers/merge_and_rebase_helper.go b/pkg/gui/controllers/helpers/merge_and_rebase_helper.go
index 21ab44201..ab273dff8 100644
--- a/pkg/gui/controllers/helpers/merge_and_rebase_helper.go
+++ b/pkg/gui/controllers/helpers/merge_and_rebase_helper.go
@@ -7,6 +7,7 @@ import (
"github.com/jesseduffield/generics/slices"
"github.com/jesseduffield/lazygit/pkg/commands/git_commands"
"github.com/jesseduffield/lazygit/pkg/commands/types/enums"
+ "github.com/jesseduffield/lazygit/pkg/gui/context"
"github.com/jesseduffield/lazygit/pkg/gui/types"
"github.com/jesseduffield/lazygit/pkg/utils"
)
@@ -34,6 +35,23 @@ const (
REBASE_OPTION_SKIP string = "skip"
)
+func (self *MergeAndRebaseHelper) CreateMergeRebaseOptionsMenu() error {
+ if self.c.Git().Status.WorkingTreeState() != enums.REBASE_MODE_NONE {
+ return self.CreateRebaseOptionsMenu()
+ }
+
+ currentContext := self.c.CurrentContext()
+ if currentContext.GetKey() != context.LOCAL_BRANCHES_CONTEXT_KEY {
+ return self.c.ErrorMsg("Not currently merging/rebasing")
+ }
+
+ branchesContext := currentContext.(*context.BranchesContext)
+
+ // TODO: handle filter mode (see OutsideFilterMode)
+ selectedBranchName := branchesContext.GetSelected().Name
+ return self.MergeRefIntoCheckedOutBranch(selectedBranchName)
+}
+
func (self *MergeAndRebaseHelper) CreateRebaseOptionsMenu() error {
type optionAndKey struct {
option string