summaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorNaveen Vardhi <vardhi.naveen@gmail.com>2018-10-06 17:04:33 +0530
committerNaveen Vardhi <vardhi.naveen@gmail.com>2018-10-06 17:04:33 +0530
commitaf8d362caabee3bbf220ce0a9a58e7c4493cb2bb (patch)
treefad87a5a94c609e34982115db94a1d5593f26386 /pkg
parentb8b59baa2700a6fc20f7f7077d494323fef851fa (diff)
Initial version of delete named branch added
Diffstat (limited to 'pkg')
-rw-r--r--pkg/gui/branches_panel.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/pkg/gui/branches_panel.go b/pkg/gui/branches_panel.go
index 0f66533b1..5c33156be 100644
--- a/pkg/gui/branches_panel.go
+++ b/pkg/gui/branches_panel.go
@@ -76,6 +76,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 {
@@ -91,7 +95,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)