diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2023-07-13 17:48:37 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2023-07-13 17:48:37 +1000 |
commit | 29beecce4ceff0241b180c1a0c0bb64ec4c3a001 (patch) | |
tree | 8357c2c29bfbadab6b3e95fe2fc62529530d39db | |
parent | 1ded318666aedfa256d0436bce665c8fcfd6a1f2 (diff) |
-rw-r--r-- | pkg/gui/controllers/branches_controller.go | 10 | ||||
-rw-r--r-- | pkg/gui/controllers/global_controller.go | 2 | ||||
-rw-r--r-- | pkg/gui/controllers/helpers/merge_and_rebase_helper.go | 18 |
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 |