diff options
author | AzraelSec <federicogerardi94@gmail.com> | 2023-03-29 00:53:14 +0200 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2023-04-15 17:26:08 +1000 |
commit | a3fdf91714c460f0496627e48a86a697107f40fb (patch) | |
tree | 1c94bd6cd475e160543880bb9a5e8459e950d83a /pkg/gui/controllers/helpers | |
parent | 368f9c8cb3d1f86d2a854cdfc20a8c87221e4087 (diff) |
feat: allow to perform a rebase with breaking before the first commit
Diffstat (limited to 'pkg/gui/controllers/helpers')
-rw-r--r-- | pkg/gui/controllers/helpers/merge_and_rebase_helper.go | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/pkg/gui/controllers/helpers/merge_and_rebase_helper.go b/pkg/gui/controllers/helpers/merge_and_rebase_helper.go index b70f7b2ed..9cb8f4a15 100644 --- a/pkg/gui/controllers/helpers/merge_and_rebase_helper.go +++ b/pkg/gui/controllers/helpers/merge_and_rebase_helper.go @@ -201,22 +201,39 @@ func (self *MergeAndRebaseHelper) RebaseOntoRef(ref string) error { if ref == checkedOutBranch { return self.c.ErrorMsg(self.c.Tr.CantRebaseOntoSelf) } - prompt := utils.ResolvePlaceholderString( - self.c.Tr.ConfirmRebase, + menuItems := []*types.MenuItem{ + { + Label: self.c.Tr.SimpleRebase, + Key: 's', + OnPress: func() error { + self.c.LogAction(self.c.Tr.Actions.RebaseBranch) + err := self.git.Rebase.RebaseBranch(ref) + return self.CheckMergeOrRebase(err) + }, + }, + { + Label: self.c.Tr.InteractiveRebase, + Key: 'i', + Tooltip: self.c.Tr.InteractiveRebaseTooltip, + OnPress: func() error { + self.c.LogAction(self.c.Tr.Actions.RebaseBranch) + err := self.git.Rebase.EditRebase(ref) + return self.CheckMergeOrRebase(err) + }, + }, + } + + title := utils.ResolvePlaceholderString( + self.c.Tr.RebasingTitle, map[string]string{ "checkedOutBranch": checkedOutBranch, - "selectedBranch": ref, + "ref": ref, }, ) - return self.c.Confirm(types.ConfirmOpts{ - Title: self.c.Tr.RebasingTitle, - Prompt: prompt, - HandleConfirm: func() error { - self.c.LogAction(self.c.Tr.Actions.RebaseBranch) - err := self.git.Rebase.RebaseBranch(ref) - return self.CheckMergeOrRebase(err) - }, + return self.c.Menu(types.CreateMenuOptions{ + Title: title, + Items: menuItems, }) } |