mirror of
https://github.com/gitui-org/gitui
synced 2026-05-23 08:58:21 +00:00
* perf: prevent repeated status fetches in large repos Replace time-based cache invalidation with a generation counter. The old `StatusParams` included a millisecond timestamp (tick) in its hash, causing the cache to invalidate on every UI tick. For large repos with millions of files, this led to repeated index loading and 5+ minute load times. This change uses a different strategy to manage cache invalidation: - Remove tick from StatusParams hash - Add generation counter that increments after each fetch completes - Include generation in cache hash This ensures: - No repeated fetches while one is already pending, making gitui usable in large repos - New fetch starts immediately after completion, keeping gitui responsive in small repos - External file changes will still be detected on the next fetch cycle * fix changelog --------- Co-authored-by: Daniel Stoll <dstoll@radix.trade> Co-authored-by: extrawurst <776816+extrawurst@users.noreply.github.com> Co-authored-by: extrawurst <mail@rusticorn.com> |
||
|---|---|---|
| .. | ||
| asyncjob | ||
| cached | ||
| sync | ||
| blame.rs | ||
| branches.rs | ||
| commit_files.rs | ||
| diff.rs | ||
| error.rs | ||
| fetch_job.rs | ||
| filter_commits.rs | ||
| lib.rs | ||
| progress.rs | ||
| pull.rs | ||
| push.rs | ||
| push_tags.rs | ||
| remote_progress.rs | ||
| remote_tags.rs | ||
| revlog.rs | ||
| status.rs | ||
| tags.rs | ||
| treefiles.rs | ||