diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2020-03-28 11:47:54 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2020-03-28 11:59:45 +1100 |
commit | 814ee24c8d13ae554925530ec68f325394ddfe6d (patch) | |
tree | d4713ad9927e84ad043b640165d132fcc6113dca /pkg/gui/branches_panel.go | |
parent | 7876cddf4a8390e9d22631e9be036c75b05f418c (diff) |
better error handling
Diffstat (limited to 'pkg/gui/branches_panel.go')
-rw-r--r-- | pkg/gui/branches_panel.go | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/pkg/gui/branches_panel.go b/pkg/gui/branches_panel.go index 45b86a546..72eab93f0 100644 --- a/pkg/gui/branches_panel.go +++ b/pkg/gui/branches_panel.go @@ -56,13 +56,13 @@ func (gui *Gui) handleBranchSelect(g *gocui.Gui, v *gocui.View) error { func (gui *Gui) refreshBranches() { builder, err := commands.NewBranchListBuilder(gui.Log, gui.GitCommand, gui.State.ReflogCommits) if err != nil { - _ = gui.createErrorPanel(gui.g, err.Error()) + _ = gui.surfaceError(err) } gui.State.Branches = builder.Build() // TODO: if we're in the remotes view and we've just deleted a remote we need to refresh accordingly if gui.getBranchesView().Context == "local-branches" { - gui.renderLocalBranchesWithSelection() + _ = gui.renderLocalBranchesWithSelection() } gui.refreshStatus() @@ -76,7 +76,7 @@ func (gui *Gui) renderLocalBranchesWithSelection() error { gui.renderDisplayStrings(branchesView, displayStrings) if gui.g.CurrentView() == branchesView { if err := gui.handleBranchSelect(gui.g, branchesView); err != nil { - return err + return gui.surfaceError(err) } } @@ -90,7 +90,7 @@ func (gui *Gui) handleBranchPress(g *gocui.Gui, v *gocui.View) error { return nil } if gui.State.Panels.Branches.SelectedLine == 0 { - return gui.createErrorPanel(g, gui.Tr.SLocalize("AlreadyCheckedOutBranch")) + return gui.createErrorPanel(gui.Tr.SLocalize("AlreadyCheckedOutBranch")) } branch := gui.getSelectedBranch() return gui.handleCheckoutRef(branch.Name, handleCheckoutRefOptions{}) @@ -101,7 +101,7 @@ func (gui *Gui) handleCreatePullRequestPress(g *gocui.Gui, v *gocui.View) error branch := gui.getSelectedBranch() if err := pullRequest.Create(branch); err != nil { - return gui.createErrorPanel(g, err.Error()) + return gui.surfaceError(err) } return nil @@ -124,7 +124,7 @@ func (gui *Gui) handleForceCheckout(g *gocui.Gui, v *gocui.View) error { title := gui.Tr.SLocalize("ForceCheckoutBranch") return gui.createConfirmationPanel(g, v, true, title, message, func(g *gocui.Gui, v *gocui.View) error { if err := gui.GitCommand.Checkout(branch.Name, commands.CheckoutOptions{Force: true}); err != nil { - _ = gui.createErrorPanel(g, err.Error()) + _ = gui.surfaceError(err) } return gui.refreshSidePanels(refreshOptions{mode: ASYNC}) }, nil) @@ -159,10 +159,10 @@ func (gui *Gui) handleCheckoutRef(ref string, options handleCheckoutRefOptions) return gui.createConfirmationPanel(gui.g, gui.getBranchesView(), true, gui.Tr.SLocalize("AutoStashTitle"), gui.Tr.SLocalize("AutoStashPrompt"), func(g *gocui.Gui, v *gocui.View) error { if err := gui.GitCommand.StashSave(gui.Tr.SLocalize("StashPrefix") + ref); err != nil { - return gui.createErrorPanel(g, err.Error()) + return gui.surfaceError(err) } if err := gui.GitCommand.Checkout(ref, cmdOptions); err != nil { - return gui.createErrorPanel(g, err.Error()) + return gui.surfaceError(err) } onSuccess() @@ -170,13 +170,13 @@ func (gui *Gui) handleCheckoutRef(ref string, options handleCheckoutRefOptions) if err := gui.refreshSidePanels(refreshOptions{mode: BLOCK_UI}); err != nil { return err } - return gui.createErrorPanel(g, err.Error()) + return gui.surfaceError(err) } return gui.refreshSidePanels(refreshOptions{mode: BLOCK_UI}) }, nil) } - if err := gui.createErrorPanel(gui.g, err.Error()); err != nil { + if err := gui.surfaceError(err); err != nil { return err } } @@ -213,7 +213,7 @@ func (gui *Gui) handleNewBranch(g *gocui.Gui, v *gocui.View) error { ) return gui.createPromptPanel(g, v, message, "", func(g *gocui.Gui, v *gocui.View) error { if err := gui.GitCommand.NewBranch(gui.trimmedContent(v), branch.Name); err != nil { - return gui.createErrorPanel(g, err.Error()) + return gui.surfaceError(err) } gui.State.Panels.Branches.SelectedLine = 0 return gui.refreshSidePanels(refreshOptions{mode: ASYNC}) @@ -231,7 +231,7 @@ func (gui *Gui) deleteBranch(g *gocui.Gui, v *gocui.View, force bool) error { } checkedOutBranch := gui.getCheckedOutBranch() if checkedOutBranch.Name == selectedBranch.Name { - return gui.createErrorPanel(g, gui.Tr.SLocalize("CantDeleteCheckOutBranch")) + return gui.createErrorPanel(gui.Tr.SLocalize("CantDeleteCheckOutBranch")) } return gui.deleteNamedBranch(g, v, selectedBranch, force) } @@ -256,7 +256,7 @@ func (gui *Gui) deleteNamedBranch(g *gocui.Gui, v *gocui.View, selectedBranch *c if !force && strings.Contains(errMessage, "is not fully merged") { return gui.deleteNamedBranch(g, v, selectedBranch, true) } - return gui.createErrorPanel(g, errMessage) + return gui.createErrorPanel(errMessage) } return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []int{BRANCHES}}) }, nil) @@ -264,11 +264,11 @@ func (gui *Gui) deleteNamedBranch(g *gocui.Gui, v *gocui.View, selectedBranch *c func (gui *Gui) mergeBranchIntoCheckedOutBranch(branchName string) error { if gui.GitCommand.IsHeadDetached() { - return gui.createErrorPanel(gui.g, "Cannot merge branch in detached head state. You might have checked out a commit directly or a remote branch, in which case you should checkout the local branch you want to be on") + return gui.createErrorPanel("Cannot merge branch in detached head state. You might have checked out a commit directly or a remote branch, in which case you should checkout the local branch you want to be on") } checkedOutBranchName := gui.getCheckedOutBranch().Name if checkedOutBranchName == branchName { - return gui.createErrorPanel(gui.g, gui.Tr.SLocalize("CantMergeBranchIntoItself")) + return gui.createErrorPanel(gui.Tr.SLocalize("CantMergeBranchIntoItself")) } prompt := gui.Tr.TemplateLocalize( "ConfirmMerge", @@ -298,7 +298,7 @@ func (gui *Gui) handleRebaseOntoLocalBranch(g *gocui.Gui, v *gocui.View) error { func (gui *Gui) handleRebaseOntoBranch(selectedBranchName string) error { checkedOutBranch := gui.getCheckedOutBranch().Name if selectedBranchName == checkedOutBranch { - return gui.createErrorPanel(gui.g, gui.Tr.SLocalize("CantRebaseOntoSelf")) + return gui.createErrorPanel(gui.Tr.SLocalize("CantRebaseOntoSelf")) } prompt := gui.Tr.TemplateLocalize( "ConfirmRebase", @@ -323,15 +323,15 @@ func (gui *Gui) handleFastForward(g *gocui.Gui, v *gocui.View) error { return nil } if branch.Pushables == "?" { - return gui.createErrorPanel(gui.g, gui.Tr.SLocalize("FwdNoUpstream")) + return gui.createErrorPanel(gui.Tr.SLocalize("FwdNoUpstream")) } if branch.Pushables != "0" { - return gui.createErrorPanel(gui.g, gui.Tr.SLocalize("FwdCommitsToPush")) + return gui.createErrorPanel(gui.Tr.SLocalize("FwdCommitsToPush")) } upstream, err := gui.GitCommand.GetUpstreamForBranch(branch.Name) if err != nil { - return gui.createErrorPanel(gui.g, err.Error()) + return gui.surfaceError(err) } split := strings.Split(upstream, "/") @@ -350,12 +350,12 @@ func (gui *Gui) handleFastForward(g *gocui.Gui, v *gocui.View) error { if gui.State.Panels.Branches.SelectedLine == 0 { if err := gui.GitCommand.PullWithoutPasswordCheck("--ff-only"); err != nil { - _ = gui.createErrorPanel(gui.g, err.Error()) + _ = gui.surfaceError(err) } _ = gui.refreshSidePanels(refreshOptions{mode: ASYNC}) } else { if err := gui.GitCommand.FastForward(branch.Name, remoteName, remoteBranchName); err != nil { - _ = gui.createErrorPanel(gui.g, err.Error()) + _ = gui.surfaceError(err) } _ = gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []int{BRANCHES}}) } @@ -459,12 +459,12 @@ func (gui *Gui) handleRenameBranch(g *gocui.Gui, v *gocui.View) error { return gui.createPromptPanel(g, v, gui.Tr.SLocalize("NewBranchNamePrompt")+" "+branch.Name+":", "", func(g *gocui.Gui, v *gocui.View) error { newName := gui.trimmedContent(v) if err := gui.GitCommand.RenameBranch(branch.Name, newName); err != nil { - return gui.createErrorPanel(gui.g, err.Error()) + return gui.surfaceError(err) } // need to checkout so that the branch shows up in our reflog and therefore // doesn't get lost among all the other branches when we switch to something else if err := gui.GitCommand.Checkout(newName, commands.CheckoutOptions{Force: false}); err != nil { - return gui.createErrorPanel(gui.g, err.Error()) + return gui.surfaceError(err) } return gui.refreshSidePanels(refreshOptions{mode: ASYNC}) |