keep it fast
Repository maintenance, without remembering the flags.
A repository that has been worked in for years gets slower, and the commands that fix it are the ones nobody runs because they are easy to get wrong and hard to justify at the moment you need them.
The four tasks
- Garbage collection - remove unreachable objects.
- Repack - consolidate loose objects into packs.
- Commit graph - the index that makes history traversal fast. This is the one that makes a large repository feel different.
- Bloom filters - speeds up path-limited history, which is what the history of a single file uses.
Pick which tasks to run. Schedule them manually, or let them run when the repository is idle rather than while you are working in it.
Why it is worth a button
The commit graph and bloom filters are the two that change how the application feels on a large history, because they are what a graph walk and a file-history query read. FluxGit's layout for 100,000 linear commits averaged 56 ms in the 2026-09-29 Apple M4 test. That benchmark measures layout after the commits are loaded; repository maintenance targets the earlier Git-reading step.