diff options
author | Naveen Vardhi <vardhi.naveen@gmail.com> | 2018-10-06 17:04:33 +0530 |
---|---|---|
committer | Naveen Vardhi <vardhi.naveen@gmail.com> | 2018-10-06 17:04:33 +0530 |
commit | af8d362caabee3bbf220ce0a9a58e7c4493cb2bb (patch) | |
tree | fad87a5a94c609e34982115db94a1d5593f26386 /pkg | |
parent | b8b59baa2700a6fc20f7f7077d494323fef851fa (diff) |
Initial version of delete named branch added
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/gui/branches_panel.go | 11 |
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) |