Skip to content

Commit d82852a

Browse files
committed
Change Refresh to not return an error
Refresh is one of those functions that shouldn't require error handling (similar to triggering a redraw of the UI, see #3887). As far as I see, the only reason why Refresh can currently return an error is that the Then function returns one. The actual refresh errors, e.g. from the git calls that are made to fetch data, are already logged and swallowed. Most of the Then functions do only UI stuff such as selecting a list item, and always return nil; there's only one that can return an error (updating the rebase todo file in LocalCommitsController.startInteractiveRebaseWithEdit); it's not a critical error if this fails, it is only used for setting rebase todo items to "edit" when you start an interactive rebase by pressing 'e' on a range selection of commits. We simply log this error instead of returning it.
1 parent 2b1f150 commit d82852a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+253
-217
lines changed

pkg/gui/background.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ func (self *BackgroundRoutineMgr) startBackgroundFilesRefresh(refreshInterval in
9393
self.gui.waitForIntro.Wait()
9494

9595
self.goEvery(time.Second*time.Duration(refreshInterval), self.gui.stopChan, func() error {
96-
return self.gui.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}})
96+
self.gui.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}})
97+
return nil
9798
})
9899
}
99100

@@ -125,7 +126,7 @@ func (self *BackgroundRoutineMgr) goEvery(interval time.Duration, stop chan stru
125126
func (self *BackgroundRoutineMgr) backgroundFetch() (err error) {
126127
err = self.gui.git.Sync.FetchBackground()
127128

128-
_ = self.gui.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.BRANCHES, types.COMMITS, types.REMOTES, types.TAGS}, Mode: types.SYNC})
129+
self.gui.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.BRANCHES, types.COMMITS, types.REMOTES, types.TAGS}, Mode: types.SYNC})
129130

130131
if err == nil {
131132
err = self.gui.helpers.BranchesHelper.AutoForwardBranches()

pkg/gui/controllers/bisect_controller.go

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,8 @@ func (self *BisectController) openStartBisectMenu(info *git_commands.BisectInfo,
175175
return err
176176
}
177177

178-
return self.c.Helpers().Bisect.PostBisectCommandRefresh()
178+
self.c.Helpers().Bisect.PostBisectCommandRefresh()
179+
return nil
179180
},
180181
DisabledReason: self.require(self.singleItemSelected())(),
181182
Key: 'b',
@@ -192,7 +193,8 @@ func (self *BisectController) openStartBisectMenu(info *git_commands.BisectInfo,
192193
return err
193194
}
194195

195-
return self.c.Helpers().Bisect.PostBisectCommandRefresh()
196+
self.c.Helpers().Bisect.PostBisectCommandRefresh()
197+
return nil
196198
},
197199
DisabledReason: self.require(self.singleItemSelected())(),
198200
Key: 'g',
@@ -211,7 +213,8 @@ func (self *BisectController) openStartBisectMenu(info *git_commands.BisectInfo,
211213
return err
212214
}
213215

214-
return self.c.Helpers().Bisect.PostBisectCommandRefresh()
216+
self.c.Helpers().Bisect.PostBisectCommandRefresh()
217+
return nil
215218
},
216219
})
217220
return nil
@@ -245,7 +248,8 @@ func (self *BisectController) showBisectCompleteMessage(candidateHashes []string
245248
return err
246249
}
247250

248-
return self.c.Helpers().Bisect.PostBisectCommandRefresh()
251+
self.c.Helpers().Bisect.PostBisectCommandRefresh()
252+
return nil
249253
},
250254
})
251255

@@ -270,20 +274,21 @@ func (self *BisectController) afterMark(selectCurrent bool, waitToReselect bool)
270274
}
271275

272276
func (self *BisectController) afterBisectMarkRefresh(selectCurrent bool, waitToReselect bool) error {
273-
selectFn := func() error {
277+
selectFn := func() {
274278
if selectCurrent {
275279
self.selectCurrentBisectCommit()
276280
}
277-
return nil
278281
}
279282

280283
if waitToReselect {
281-
return self.c.Refresh(types.RefreshOptions{Mode: types.SYNC, Scope: []types.RefreshableView{}, Then: selectFn})
284+
self.c.Refresh(types.RefreshOptions{Mode: types.SYNC, Scope: []types.RefreshableView{}, Then: selectFn})
285+
return nil
282286
}
283287

284-
_ = selectFn()
288+
selectFn()
285289

286-
return self.c.Helpers().Bisect.PostBisectCommandRefresh()
290+
self.c.Helpers().Bisect.PostBisectCommandRefresh()
291+
return nil
287292
}
288293

289294
func (self *BisectController) selectCurrentBisectCommit() {

pkg/gui/controllers/branches_controller.go

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -263,15 +263,13 @@ func (self *BranchesController) viewUpstreamOptions(selectedBranch *models.Branc
263263
if err := self.c.Git().Branch.UnsetUpstream(selectedBranch.Name); err != nil {
264264
return err
265265
}
266-
if err := self.c.Refresh(types.RefreshOptions{
266+
self.c.Refresh(types.RefreshOptions{
267267
Mode: types.SYNC,
268268
Scope: []types.RefreshableView{
269269
types.BRANCHES,
270270
types.COMMITS,
271271
},
272-
}); err != nil {
273-
return err
274-
}
272+
})
275273
return nil
276274
},
277275
Key: 'u',
@@ -289,15 +287,13 @@ func (self *BranchesController) viewUpstreamOptions(selectedBranch *models.Branc
289287
if err := self.c.Git().Branch.SetUpstream(upstreamRemote, upstreamBranch, selectedBranch.Name); err != nil {
290288
return err
291289
}
292-
if err := self.c.Refresh(types.RefreshOptions{
290+
self.c.Refresh(types.RefreshOptions{
293291
Mode: types.SYNC,
294292
Scope: []types.RefreshableView{
295293
types.BRANCHES,
296294
types.COMMITS,
297295
},
298-
}); err != nil {
299-
return err
300-
}
296+
})
301297
return nil
302298
})
303299
},
@@ -478,7 +474,8 @@ func (self *BranchesController) forceCheckout() error {
478474
if err := self.c.Git().Branch.Checkout(branch.Name, git_commands.CheckoutOptions{Force: true}); err != nil {
479475
return err
480476
}
481-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
477+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
478+
return nil
482479
},
483480
})
484481

@@ -526,7 +523,8 @@ func (self *BranchesController) createNewBranchWithName(newBranchName string) er
526523
}
527524

528525
self.context().SetSelection(0)
529-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, KeepBranchSelectionIndex: true})
526+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, KeepBranchSelectionIndex: true})
527+
return nil
530528
}
531529

532530
func (self *BranchesController) localDelete(branches []*models.Branch) error {
@@ -655,7 +653,7 @@ func (self *BranchesController) fastForward(branch *models.Branch) error {
655653
WorktreePath: worktreePath,
656654
},
657655
)
658-
_ = self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
656+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
659657
return err
660658
}
661659

@@ -664,7 +662,7 @@ func (self *BranchesController) fastForward(branch *models.Branch) error {
664662
err := self.c.Git().Sync.FastForward(
665663
task, branch.Name, branch.UpstreamRemote, branch.UpstreamBranch,
666664
)
667-
_ = self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.BRANCHES}})
665+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.BRANCHES}})
668666
return err
669667
})
670668
}
@@ -679,7 +677,8 @@ func (self *BranchesController) createSortMenu() error {
679677
self.c.GetAppState().LocalBranchSortOrder = sortOrder
680678
self.c.SaveAppStateAndLogError()
681679
self.c.Contexts().Branches.SetSelection(0)
682-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.BRANCHES}})
680+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.BRANCHES}})
681+
return nil
683682
}
684683
return nil
685684
},
@@ -702,7 +701,7 @@ func (self *BranchesController) rename(branch *models.Branch) error {
702701
}
703702

704703
// need to find where the branch is now so that we can re-select it. That means we need to refetch the branches synchronously and then find our branch
705-
_ = self.c.Refresh(types.RefreshOptions{
704+
self.c.Refresh(types.RefreshOptions{
706705
Mode: types.SYNC,
707706
Scope: []types.RefreshableView{types.BRANCHES, types.WORKTREES},
708707
})

pkg/gui/controllers/commits_files_controller.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,8 @@ func (self *CommitFilesController) checkout(node *filetree.CommitFileNode) error
289289
return err
290290
}
291291

292-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
292+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
293+
return nil
293294
}
294295

295296
func (self *CommitFilesController) discard(selectedNodes []*filetree.CommitFileNode) error {

pkg/gui/controllers/context_lines_controller.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,13 @@ func (self *ContextLinesController) applyChange() error {
103103
switch currentContext.GetKey() {
104104
// we make an exception for our staging and patch building contexts because they actually need to refresh their state afterwards.
105105
case context.PATCH_BUILDING_MAIN_CONTEXT_KEY:
106-
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.PATCH_BUILDING}})
106+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.PATCH_BUILDING}})
107107
case context.STAGING_MAIN_CONTEXT_KEY, context.STAGING_SECONDARY_CONTEXT_KEY:
108-
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.STAGING}})
108+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.STAGING}})
109109
default:
110110
currentContext.HandleRenderToMain()
111-
return nil
112111
}
112+
return nil
113113
}
114114

115115
func (self *ContextLinesController) checkCanChangeContext() error {

pkg/gui/controllers/custom_patch_options_menu_action.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,8 @@ func (self *CustomPatchOptionsMenuAction) handleApplyPatch(reverse bool) error {
275275
if err := self.c.Git().Patch.ApplyCustomPatch(reverse, true); err != nil {
276276
return err
277277
}
278-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
278+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
279+
return nil
279280
}
280281

281282
func (self *CustomPatchOptionsMenuAction) copyPatchToClipboard() error {

pkg/gui/controllers/diffing_menu_action.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ func (self *DiffingMenuAction) Call() error {
2323
OnPress: func() error {
2424
self.c.Modes().Diffing.Ref = name
2525
// can scope this down based on current view but too lazy right now
26-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
26+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
27+
return nil
2728
},
2829
},
2930
}...)
@@ -38,7 +39,8 @@ func (self *DiffingMenuAction) Call() error {
3839
FindSuggestionsFunc: self.c.Helpers().Suggestions.GetRefsSuggestionsFunc(),
3940
HandleConfirm: func(response string) error {
4041
self.c.Modes().Diffing.Ref = strings.TrimSpace(response)
41-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
42+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
43+
return nil
4244
},
4345
})
4446

@@ -53,14 +55,16 @@ func (self *DiffingMenuAction) Call() error {
5355
Label: self.c.Tr.SwapDiff,
5456
OnPress: func() error {
5557
self.c.Modes().Diffing.Reverse = !self.c.Modes().Diffing.Reverse
56-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
58+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
59+
return nil
5760
},
5861
},
5962
{
6063
Label: self.c.Tr.ExitDiffMode,
6164
OnPress: func() error {
6265
self.c.Modes().Diffing = diffing.New()
63-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
66+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
67+
return nil
6468
},
6569
},
6670
}...)

pkg/gui/controllers/files_controller.go

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -486,9 +486,7 @@ func (self *FilesController) press(nodes []*filetree.FileNode) error {
486486
return err
487487
}
488488

489-
if err := self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}, Mode: types.ASYNC}); err != nil {
490-
return err
491-
}
489+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}, Mode: types.ASYNC})
492490

493491
self.context().HandleFocus(types.OnFocusOpts{})
494492
return nil
@@ -566,7 +564,8 @@ func (self *FilesController) handleNonInlineConflict(file *models.File) error {
566564
if err := command(file.GetPath()); err != nil {
567565
return err
568566
}
569-
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}})
567+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}})
568+
return nil
570569
}
571570
keepItem := &types.MenuItem{
572571
Label: self.c.Tr.MergeConflictKeepFile,
@@ -611,9 +610,7 @@ func (self *FilesController) toggleStagedAll() error {
611610
return err
612611
}
613612

614-
if err := self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}, Mode: types.ASYNC}); err != nil {
615-
return err
616-
}
613+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}, Mode: types.ASYNC})
617614

618615
self.context().HandleFocus(types.OnFocusOpts{})
619616
return nil
@@ -683,7 +680,8 @@ func (self *FilesController) ignoreOrExcludeTracked(node *filetree.FileNode, trA
683680
return err
684681
}
685682

686-
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}})
683+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}})
684+
return nil
687685
}
688686

689687
func (self *FilesController) ignoreOrExcludeUntracked(node *filetree.FileNode, trAction string, f func(string) error) error {
@@ -693,7 +691,8 @@ func (self *FilesController) ignoreOrExcludeUntracked(node *filetree.FileNode, t
693691
return err
694692
}
695693

696-
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}})
694+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}})
695+
return nil
697696
}
698697

699698
func (self *FilesController) ignoreOrExcludeFile(node *filetree.FileNode, trText string, trPrompt string, trAction string, f func(string) error) error {
@@ -755,7 +754,8 @@ func (self *FilesController) ignoreOrExcludeMenu(node *filetree.FileNode) error
755754
}
756755

757756
func (self *FilesController) refresh() error {
758-
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}})
757+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}})
758+
return nil
759759
}
760760

761761
func (self *FilesController) handleAmendCommitPress() error {
@@ -900,10 +900,10 @@ func (self *FilesController) setStatusFiltering(filter filetree.FileTreeDisplayF
900900
// Whenever we switch between untracked and other filters, we need to refresh the files view
901901
// because the untracked files filter applies when running `git status`.
902902
if previousFilter != filter && (previousFilter == filetree.DisplayUntracked || filter == filetree.DisplayUntracked) {
903-
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}, Mode: types.ASYNC})
903+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.FILES}, Mode: types.ASYNC})
904+
} else {
905+
self.c.PostRefreshUpdate(self.context())
904906
}
905-
906-
self.c.PostRefreshUpdate(self.context())
907907
return nil
908908
}
909909

@@ -1177,7 +1177,8 @@ func (self *FilesController) handleStashSave(stashFunc func(message string) erro
11771177
if err := stashFunc(stashComment); err != nil {
11781178
return err
11791179
}
1180-
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.STASH, types.FILES}})
1180+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.STASH, types.FILES}})
1181+
return nil
11811182
},
11821183
})
11831184

@@ -1197,7 +1198,7 @@ func (self *FilesController) fetch() error {
11971198
return errors.New(self.c.Tr.PassUnameWrong)
11981199
}
11991200

1200-
_ = self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.BRANCHES, types.COMMITS, types.REMOTES, types.TAGS}, Mode: types.SYNC})
1201+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.BRANCHES, types.COMMITS, types.REMOTES, types.TAGS}, Mode: types.SYNC})
12011202

12021203
if err == nil {
12031204
err = self.c.Helpers().BranchesHelper.AutoForwardBranches()
@@ -1322,7 +1323,8 @@ func (self *FilesController) remove(selectedNodes []*filetree.FileNode) error {
13221323
}
13231324
}
13241325

1325-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES, types.WORKTREES}})
1326+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES, types.WORKTREES}})
1327+
return nil
13261328
},
13271329
Key: self.c.KeybindingsOpts().GetKey(self.c.UserConfig().Keybinding.Files.ConfirmDiscard),
13281330
Tooltip: utils.ResolvePlaceholderString(
@@ -1348,7 +1350,8 @@ func (self *FilesController) remove(selectedNodes []*filetree.FileNode) error {
13481350
}
13491351
}
13501352

1351-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES, types.WORKTREES}})
1353+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES, types.WORKTREES}})
1354+
return nil
13521355
},
13531356
Key: 'u',
13541357
Tooltip: utils.ResolvePlaceholderString(
@@ -1389,7 +1392,8 @@ func (self *FilesController) ResetSubmodule(submodule *models.SubmoduleConfig) e
13891392
return err
13901393
}
13911394

1392-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES, types.SUBMODULES}})
1395+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES, types.SUBMODULES}})
1396+
return nil
13931397
})
13941398
}
13951399

pkg/gui/controllers/filtering_menu_action.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,10 @@ func (self *FilteringMenuAction) setFiltering() error {
122122

123123
self.c.Context().Push(self.c.Contexts().LocalCommits, types.OnFocusOpts{})
124124

125-
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.COMMITS}, Then: func() error {
125+
self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.COMMITS}, Then: func() {
126126
self.c.Contexts().LocalCommits.SetSelection(0)
127127
self.c.Contexts().LocalCommits.FocusLine()
128-
return nil
129128
}})
129+
130+
return nil
130131
}

0 commit comments

Comments
 (0)