From 48cea4e1c43d6a191062d33bf8b5cc9ecef3e528 Mon Sep 17 00:00:00 2001 From: Hubert Baumgartner Date: Fri, 10 Aug 2018 16:46:03 +0200 Subject: [PATCH] added branch delete functionallity --- branches_panel.go | 10 ++++++++++ docs/Keybindings.md | 1 + gitcommands.go | 4 ++++ keybindings.go | 1 + 4 files changed, 16 insertions(+) diff --git a/branches_panel.go b/branches_panel.go index 00091ffb8..968096610 100644 --- a/branches_panel.go +++ b/branches_panel.go @@ -51,6 +51,15 @@ func handleNewBranch(g *gocui.Gui, v *gocui.View) error { return nil } +func handleDeleteBranch(g *gocui.Gui, v *gocui.View) error { + branch := getSelectedBranch(v) + if output, err := gitDeleteBranch(branch.Name); err != nil { + return createErrorPanel(g, output) + } + return refreshSidePanels(g) +} + + func handleMerge(g *gocui.Gui, v *gocui.View) error { checkedOutBranch := state.Branches[0] selectedBranch := getSelectedBranch(v) @@ -76,6 +85,7 @@ func renderBranchesOptions(g *gocui.Gui) error { "m": "merge", "c": "checkout by name", "n": "new branch", + "d": "delte branch", "← → ↑ ↓": "navigate", }) } diff --git a/docs/Keybindings.md b/docs/Keybindings.md index cefafeba5..c46960676 100644 --- a/docs/Keybindings.md +++ b/docs/Keybindings.md @@ -29,6 +29,7 @@ m: merge into currently checked out branch c: checkout by name n: new branch + d: delete branch ## Commits Panel: diff --git a/gitcommands.go b/gitcommands.go index 2d073aec9..2c68f561e 100644 --- a/gitcommands.go +++ b/gitcommands.go @@ -459,6 +459,10 @@ func gitNewBranch(name string) (string, error) { return runDirectCommand("git checkout -b " + name) } +func gitDeleteBranch(branch string) (string, error) { + return runCommand("git branch -d " + branch) +} + func gitListStash() (string, error) { return runDirectCommand("git stash list") } diff --git a/keybindings.go b/keybindings.go index 07309790f..d68c6c5a6 100644 --- a/keybindings.go +++ b/keybindings.go @@ -51,6 +51,7 @@ func keybindings(g *gocui.Gui) error { {ViewName: "branches", Key: 'c', Modifier: gocui.ModNone, Handler: handleCheckoutByName}, {ViewName: "branches", Key: 'F', Modifier: gocui.ModNone, Handler: handleForceCheckout}, {ViewName: "branches", Key: 'n', Modifier: gocui.ModNone, Handler: handleNewBranch}, + {ViewName: "branches", Key: 'd', Modifier: gocui.ModNone, Handler: handleDeleteBranch}, {ViewName: "branches", Key: 'm', Modifier: gocui.ModNone, Handler: handleMerge}, {ViewName: "commits", Key: 's', Modifier: gocui.ModNone, Handler: handleCommitSquashDown}, {ViewName: "commits", Key: 'r', Modifier: gocui.ModNone, Handler: handleRenameCommit},