Compare commits

...
Author SHA1 Message Date
Stefan Haller c5a2a56700 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.
2025-05-09 08:33:19 +02:00
+8 -4
View File
@@ -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) {