1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-03-05 15:15:49 +02:00

Use DisabledReason for rebasing a branch onto itself

This commit is contained in:
Stefan Haller 2023-09-05 22:45:56 +02:00
parent e592d81b60
commit c9371f812f
2 changed files with 14 additions and 6 deletions

View File

@ -76,9 +76,10 @@ func (self *BranchesController) GetKeybindings(opts types.KeybindingsOpts) []*ty
OpensMenu: true, OpensMenu: 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.rebase),
Description: self.c.Tr.RebaseBranch, Description: self.c.Tr.RebaseBranch,
GetDisabledReason: self.getDisabledReasonForRebase,
}, },
{ {
Key: opts.GetKey(opts.Config.Branches.MergeIntoCurrentBranch), Key: opts.GetKey(opts.Config.Branches.MergeIntoCurrentBranch),
@ -512,6 +513,16 @@ func (self *BranchesController) rebase() error {
return self.c.Helpers().MergeAndRebase.RebaseOntoRef(selectedBranchName) return self.c.Helpers().MergeAndRebase.RebaseOntoRef(selectedBranchName)
} }
func (self *BranchesController) getDisabledReasonForRebase() string {
selectedBranchName := self.context().GetSelected().Name
checkedOutBranch := self.c.Helpers().Refs.GetCheckedOutRef().Name
if selectedBranchName == checkedOutBranch {
return self.c.Tr.CantRebaseOntoSelf
}
return ""
}
func (self *BranchesController) fastForward(branch *models.Branch) error { func (self *BranchesController) fastForward(branch *models.Branch) error {
if !branch.IsTrackingRemote() { if !branch.IsTrackingRemote() {
return self.c.ErrorMsg(self.c.Tr.FwdNoUpstream) return self.c.ErrorMsg(self.c.Tr.FwdNoUpstream)

View File

@ -220,9 +220,6 @@ 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
if ref == checkedOutBranch {
return self.c.ErrorMsg(self.c.Tr.CantRebaseOntoSelf)
}
menuItems := []*types.MenuItem{ menuItems := []*types.MenuItem{
{ {
Label: self.c.Tr.SimpleRebase, Label: self.c.Tr.SimpleRebase,