Tuned Git Baselines
Stock Git is not enough for public claims. The benchmark suite should compare Oak against credible Git modes where those modes apply.
The machine-readable source of truth is config/git_modes.json.
Modes
| Mode | Purpose | Applies To | Oak Comparison |
|---|---|---|---|
git_stock | Default installed Git. | All scenarios. | oak_default, oak_virtual_branch. |
git_untracked_cache | Speed up status in large trees with many untracked paths. | Large-tree, ignored-heavy, wide-dirty-tree scenarios. | oak_default. |
git_split_index | Reduce index write cost in large working trees. | Large-tree and wide-dirty-tree scenarios. | oak_default. |
git_fsmonitor | Avoid full filesystem scans when platform support exists. | Large working-tree scenarios. | oak_default. |
git_sparse_checkout | Materialize only task-relevant paths. | Sparse task and large-tree scenarios. | oak_space_mount, oak_mount_per_task. |
git_worktree | Isolate per-task branches. | Parallel-agent and branch-per-task scenarios. | oak_space_mount, oak_virtual_branch. |
git_lfs | Avoid storing large binary payloads directly in Git objects. | Binary-heavy scenarios when LFS is installed. | oak_default, oak_space_mount. |
Fairness Rules
- Report tuned modes separately from stock Git.
- Mark unsupported modes explicitly; do not silently drop them.
- Do not use sparse checkout as the full-tree baseline.
- Do not compare Git LFS to normal Oak storage unless the scenario is explicitly about external binary-storage workflows.
- Include setup costs only when the scenario is about task startup or isolation.
Implementation Notes
Each mode needs:
- setup commands
- teardown commands if any
- compatibility checks
- fixture applicability
- exact command mapping for timed operations
- correctness checks proving the mode saw the intended paths
The public claim should be βOak beats stock Gitβ or βOak beats tuned Git mode Xβ depending on which rows actually ran.
scripts/bench.py --git-modes lfs is wired for the binary fixture scenarios
named in git_lfs.applies_to (this file's table is prose; the JSON list is
enforced). The mode runs git lfs install --local and git lfs track "*.bin"
after repo.init and before snapshot.initial, recorded as
mode.setup.lfs_install and mode.setup.lfs_track operation rows (mirroring
mode.setup.fsmonitor), so the generated binary files are tracked through LFS
before the first commit and the setup cost stays visible. Scenarios outside
applies_to and hosts without Git LFS emit scenario.mode_skipped rows, and a
fixture file the track patterns miss fails setup closed with a
mode.setup.lfs_track_coverage skip row (lfs_track_incomplete:<ext>) β an
untracked comparator is an unfair comparator. All of these are unmeasured, not
failures or hidden stock Git measurements.