The performance plan for gitoxide is organized around real-world Git workflows rather than synthetic microbenchmarks. Performance improvements are prioritized based on how they impact common interactive and networked Git operations.
If you are evaluating gitoxide for integration, note that the development focus follows this impact ordering:
- Index Management: Operations like
git status, git add, and editor integrations that require frequent index refreshes, worktree classification, and untracked path scanning. - State Transitions: Operations like
git commit, git checkout, git switch, git merge, and git reset --hard which rely on fast index reads, tree-to-index conversion, and content merging. - History and Diffing: Operations like
git diff, git log -- <path>, and git blame which involve repeated tree, object, and diff traversal. - Network and Ingestion: Operations like
git fetch, git pull, and git clone which stress object lookup, pack ingestion, and negotiation. - Maintenance and Storage: Operations like
git push, git gc, git repack, and object verification which stress pack traversal, delta reconstruction, and bitmaps. - Streaming: Operations like
git archive which stream trees with attributes and filters.