summaryrefslogtreecommitdiffstats
path: root/pkg/gui
diff options
context:
space:
mode:
authorAzraelSec <federicogerardi94@gmail.com>2023-03-29 00:53:14 +0200
committerJesse Duffield <jessedduffield@gmail.com>2023-04-15 17:26:08 +1000
commita3fdf91714c460f0496627e48a86a697107f40fb (patch)
tree1c94bd6cd475e160543880bb9a5e8459e950d83a /pkg/gui
parent368f9c8cb3d1f86d2a854cdfc20a8c87221e4087 (diff)
feat: allow to perform a rebase with breaking before the first commit
Diffstat (limited to 'pkg/gui')
-rw-r--r--pkg/gui/controllers/helpers/merge_and_rebase_helper.go39
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,
})
}