mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-05-12 12:55:47 +02:00
Always show rebase menu, even when rebasing is not possible
Instead, disable the individual entries in the menu. This is necessary because we are going to add another entry to the menu that is independent of the selected branch.
This commit is contained in:
parent
ca6d88080c
commit
ddf5e24499
2 changed files with 20 additions and 27 deletions
|
@ -100,15 +100,13 @@ func (self *BranchesController) GetKeybindings(opts types.KeybindingsOpts) []*ty
|
||||||
DisplayOnScreen: true,
|
DisplayOnScreen: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Key: opts.GetKey(opts.Config.Branches.RebaseBranch),
|
Key: opts.GetKey(opts.Config.Branches.RebaseBranch),
|
||||||
Handler: opts.Guards.OutsideFilterMode(self.rebase),
|
Handler: opts.Guards.OutsideFilterMode(self.withItem(self.rebase)),
|
||||||
GetDisabledReason: self.require(
|
GetDisabledReason: self.require(self.singleItemSelected()),
|
||||||
self.singleItemSelected(self.notRebasingOntoSelf),
|
Description: self.c.Tr.RebaseBranch,
|
||||||
),
|
Tooltip: self.c.Tr.RebaseBranchTooltip,
|
||||||
Description: self.c.Tr.RebaseBranch,
|
OpensMenu: true,
|
||||||
Tooltip: self.c.Tr.RebaseBranchTooltip,
|
DisplayOnScreen: true,
|
||||||
OpensMenu: true,
|
|
||||||
DisplayOnScreen: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Key: opts.GetKey(opts.Config.Branches.MergeIntoCurrentBranch),
|
Key: opts.GetKey(opts.Config.Branches.MergeIntoCurrentBranch),
|
||||||
|
@ -634,19 +632,8 @@ func (self *BranchesController) merge() error {
|
||||||
return self.c.Helpers().MergeAndRebase.MergeRefIntoCheckedOutBranch(selectedBranchName)
|
return self.c.Helpers().MergeAndRebase.MergeRefIntoCheckedOutBranch(selectedBranchName)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *BranchesController) rebase() error {
|
func (self *BranchesController) rebase(branch *models.Branch) error {
|
||||||
selectedBranchName := self.context().GetSelected().Name
|
return self.c.Helpers().MergeAndRebase.RebaseOntoRef(branch.Name)
|
||||||
return self.c.Helpers().MergeAndRebase.RebaseOntoRef(selectedBranchName)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (self *BranchesController) notRebasingOntoSelf(branch *models.Branch) *types.DisabledReason {
|
|
||||||
selectedBranchName := branch.Name
|
|
||||||
checkedOutBranch := self.c.Helpers().Refs.GetCheckedOutRef().Name
|
|
||||||
if selectedBranchName == checkedOutBranch {
|
|
||||||
return &types.DisabledReason{Text: self.c.Tr.CantRebaseOntoSelf}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *BranchesController) fastForward(branch *models.Branch) error {
|
func (self *BranchesController) fastForward(branch *models.Branch) error {
|
||||||
|
|
|
@ -235,10 +235,15 @@ func (self *MergeAndRebaseHelper) PromptToContinueRebase() error {
|
||||||
|
|
||||||
func (self *MergeAndRebaseHelper) RebaseOntoRef(ref string) error {
|
func (self *MergeAndRebaseHelper) RebaseOntoRef(ref string) error {
|
||||||
checkedOutBranch := self.refsHelper.GetCheckedOutRef().Name
|
checkedOutBranch := self.refsHelper.GetCheckedOutRef().Name
|
||||||
|
var disabledReason *types.DisabledReason
|
||||||
|
if checkedOutBranch == ref {
|
||||||
|
disabledReason = &types.DisabledReason{Text: self.c.Tr.CantRebaseOntoSelf}
|
||||||
|
}
|
||||||
menuItems := []*types.MenuItem{
|
menuItems := []*types.MenuItem{
|
||||||
{
|
{
|
||||||
Label: self.c.Tr.SimpleRebase,
|
Label: self.c.Tr.SimpleRebase,
|
||||||
Key: 's',
|
Key: 's',
|
||||||
|
DisabledReason: disabledReason,
|
||||||
OnPress: func() error {
|
OnPress: func() error {
|
||||||
self.c.LogAction(self.c.Tr.Actions.RebaseBranch)
|
self.c.LogAction(self.c.Tr.Actions.RebaseBranch)
|
||||||
return self.c.WithWaitingStatus(self.c.Tr.RebasingStatus, func(task gocui.Task) error {
|
return self.c.WithWaitingStatus(self.c.Tr.RebasingStatus, func(task gocui.Task) error {
|
||||||
|
@ -258,9 +263,10 @@ func (self *MergeAndRebaseHelper) RebaseOntoRef(ref string) error {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Label: self.c.Tr.InteractiveRebase,
|
Label: self.c.Tr.InteractiveRebase,
|
||||||
Key: 'i',
|
Key: 'i',
|
||||||
Tooltip: self.c.Tr.InteractiveRebaseTooltip,
|
DisabledReason: disabledReason,
|
||||||
|
Tooltip: self.c.Tr.InteractiveRebaseTooltip,
|
||||||
OnPress: func() error {
|
OnPress: func() error {
|
||||||
self.c.LogAction(self.c.Tr.Actions.RebaseBranch)
|
self.c.LogAction(self.c.Tr.Actions.RebaseBranch)
|
||||||
baseCommit := self.c.Modes().MarkedBaseCommit.GetHash()
|
baseCommit := self.c.Modes().MarkedBaseCommit.GetHash()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue