summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2018-10-24 09:24:16 +1100
committerGitHub <noreply@github.com>2018-10-24 09:24:16 +1100
commitc6da4c8a47a45a96beb2de4fbe5b98cfb87446b4 (patch)
treef0af2140c32532d23a84d4adcd79217ccca1bd6b
parent3b6b68a2a1541fe26b39cba676b039f72142a28b (diff)
parent467775fc1ca1630ca5c1b4bdb2bc87d53c4e72c6 (diff)
Merge pull request #301 from rozuur/masterv0.5
Initial version of delete named branch added
-rw-r--r--pkg/gui/branches_panel.go11
-rw-r--r--pkg/gui/keybindings.go6
-rw-r--r--pkg/i18n/english.go2
3 files changed, 11 insertions, 8 deletions
diff --git a/pkg/gui/branches_panel.go b/pkg/gui/branches_panel.go
index 11a4a0ebb..dbf4b007a 100644
--- a/pkg/gui/branches_panel.go
+++ b/pkg/gui/branches_panel.go
@@ -87,6 +87,10 @@ func (gui *Gui) deleteBranch(g *gocui.Gui, v *gocui.View, force bool) error {
if checkedOutBranch.Name == selectedBranch.Name {
return gui.createErrorPanel(g, gui.Tr.SLocalize("CantDeleteCheckOutBranch"))
}
+ return gui.deleteNamedBranch(g, v, selectedBranch, force)
+}
+
+func (gui *Gui) deleteNamedBranch(g *gocui.Gui, v *gocui.View, selectedBranch *commands.Branch, force bool) error {
title := gui.Tr.SLocalize("DeleteBranch")
var messageId string
if force {
@@ -102,7 +106,12 @@ func (gui *Gui) deleteBranch(g *gocui.Gui, v *gocui.View, force bool) error {
)
return gui.createConfirmationPanel(g, v, title, message, func(g *gocui.Gui, v *gocui.View) error {
if err := gui.GitCommand.DeleteBranch(selectedBranch.Name, force); err != nil {
- return gui.createErrorPanel(g, err.Error())
+ errMessage := err.Error()
+ if !force && strings.Contains(errMessage, "is not fully merged") {
+ return gui.deleteNamedBranch(g, v, selectedBranch, true)
+ } else {
+ return gui.createErrorPanel(g, errMessage)
+ }
}
return gui.refreshSidePanels(g)
}, nil)
diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go
index cc1edc24b..8d07429a6 100644
--- a/pkg/gui/keybindings.go
+++ b/pkg/gui/keybindings.go
@@ -309,12 +309,6 @@ func (gui *Gui) GetKeybindings() []*Binding {
Description: gui.Tr.SLocalize("deleteBranch"),
}, {
ViewName: "branches",
- Key: 'D',
- Modifier: gocui.ModNone,
- Handler: gui.handleForceDeleteBranch,
- Description: gui.Tr.SLocalize("forceDeleteBranch"),
- }, {
- ViewName: "branches",
Key: 'm',
Modifier: gocui.ModNone,
Handler: gui.handleMerge,
diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go
index 96c2031bf..9e0e60166 100644
--- a/pkg/i18n/english.go
+++ b/pkg/i18n/english.go
@@ -176,7 +176,7 @@ func addEnglish(i18nObject *i18n.Bundle) error {
Other: "Are you sure you want to delete the branch {{.selectedBranchName}}?",
}, &i18n.Message{
ID: "ForceDeleteBranchMessage",
- Other: "Are you sure you want to force delete the branch {{.selectedBranchName}}?",
+ Other: "{{.selectedBranchName}} is not fully merged. Are you sure you want to delete it?",
}, &i18n.Message{
ID: "CantMergeBranchIntoItself",
Other: "You cannot merge a branch into itself",