From c5a2a56700d6fb7235f58e8b3f81eb5bc875d1bf Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Fri, 9 May 2025 08:33:19 +0200 Subject: [PATCH] Avoid crash when the git command to obtain branches fails This is probably not a good enough solution, because we only log the error (in RefreshHelper.refreshBranches) and don't communicate it otherwise to users. This is true for all errors that happen during refresh, though. --- pkg/commands/git_commands/branch_loader.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/commands/git_commands/branch_loader.go b/pkg/commands/git_commands/branch_loader.go index 798a2ebef..37887578b 100644 --- a/pkg/commands/git_commands/branch_loader.go +++ b/pkg/commands/git_commands/branch_loader.go @@ -72,7 +72,10 @@ func (self *BranchLoader) Load(reflogCommits []*models.Commit, onWorker func(func() error), renderFunc func(), ) ([]*models.Branch, error) { - branches := self.obtainBranches() + branches, err := self.obtainBranches() + if err != nil { + return nil, err + } if self.AppState.LocalBranchSortOrder == "recency" { reflogBranches := self.obtainReflogBranches(reflogCommits) @@ -232,16 +235,16 @@ func (self *BranchLoader) GetBaseBranch(branch *models.Branch, mainBranches *Mai return split[0], nil } -func (self *BranchLoader) obtainBranches() []*models.Branch { +func (self *BranchLoader) obtainBranches() ([]*models.Branch, error) { output, err := self.getRawBranches() if err != nil { - panic(err) + return nil, err } trimmedOutput := strings.TrimSpace(output) outputLines := strings.Split(trimmedOutput, "\n") - return lo.FilterMap(outputLines, func(line string, _ int) (*models.Branch, bool) { + branches := lo.FilterMap(outputLines, func(line string, _ int) (*models.Branch, bool) { if line == "" { return nil, false } @@ -257,6 +260,7 @@ func (self *BranchLoader) obtainBranches() []*models.Branch { storeCommitDateAsRecency := self.AppState.LocalBranchSortOrder != "recency" return obtainBranch(split, storeCommitDateAsRecency), true }) + return branches, nil } func (self *BranchLoader) getRawBranches() (string, error) {