diff --git a/pkg/gui/controllers/helpers/refresh_helper.go b/pkg/gui/controllers/helpers/refresh_helper.go index 8d88faeec..b927296fc 100644 --- a/pkg/gui/controllers/helpers/refresh_helper.go +++ b/pkg/gui/controllers/helpers/refresh_helper.go @@ -127,7 +127,12 @@ func (self *RefreshHelper) Refresh(options types.RefreshOptions) error { refresh("commits and commit files", self.refreshCommitsAndCommitFiles) includeWorktreesWithBranches = scopeSet.Includes(types.WORKTREES) - refresh("reflog and branches", func() { self.refreshReflogAndBranches(includeWorktreesWithBranches, options.KeepBranchSelectionIndex) }) + if self.c.AppState.LocalBranchSortOrder == "recency" { + refresh("reflog and branches", func() { self.refreshReflogAndBranches(includeWorktreesWithBranches, options.KeepBranchSelectionIndex) }) + } else { + refresh("branches", func() { self.refreshBranches(includeWorktreesWithBranches, options.KeepBranchSelectionIndex) }) + refresh("reflog", func() { _ = self.refreshReflogCommits() }) + } } else if scopeSet.Includes(types.REBASE_COMMITS) { // the above block handles rebase commits so we only need to call this one // if we've asked specifically for rebase commits and not those other things diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go index caa385c3b..0c0f36370 100644 --- a/pkg/gui/gui.go +++ b/pkg/gui/gui.go @@ -342,15 +342,8 @@ func (gui *Gui) onNewRepo(startArgs appTypes.StartArgs, contextKey types.Context return nil } -// resetState determines if we pull the repo state from our repo state map or -// just re-initialize it. For now we're only re-using state when we're going -// in and out of submodules, for the sake of having the cursor back on the submodule -// when we return. -// -// I tried out always reverting to the repo's original state but found that in fact -// it gets a bit confusing to land back in the status panel when visiting a repo -// you've already switched from. There's no doubt some easy way to make the UX -// optimal for all cases but I'm too lazy to think about what that is right now +// resetState reuses the repo state from our repo state map, if the repo was +// open before; otherwise it creates a new one. func (gui *Gui) resetState(startArgs appTypes.StartArgs) types.Context { worktreePath := gui.git.RepoPaths.WorktreePath()