From af8d362caabee3bbf220ce0a9a58e7c4493cb2bb Mon Sep 17 00:00:00 2001 From: Naveen Vardhi Date: Sat, 6 Oct 2018 17:04:33 +0530 Subject: Initial version of delete named branch added --- pkg/gui/branches_panel.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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) -- cgit v1.2.3 From 3a23cb87b70ebb3c7c82be77a264a0b3499d76c0 Mon Sep 17 00:00:00 2001 From: Naveen Vardhi Date: Sun, 21 Oct 2018 21:10:06 +0530 Subject: Remove force delete keybinding And force delete messages gives feedback about merge status --- pkg/gui/keybindings.go | 6 ------ pkg/i18n/english.go | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index 78271a3f7..4eea64303 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -301,12 +301,6 @@ func (gui *Gui) GetKeybindings() []*Binding { Modifier: gocui.ModNone, Handler: gui.handleDeleteBranch, Description: gui.Tr.SLocalize("deleteBranch"), - }, { - ViewName: "branches", - Key: 'D', - Modifier: gocui.ModNone, - Handler: gui.handleForceDeleteBranch, - Description: gui.Tr.SLocalize("forceDeleteBranch"), }, { ViewName: "branches", Key: 'm', diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go index 9ead5a54e..559dbb70c 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", -- cgit v1.2.3