Log in
docs/tuned-git-baselines.md 54 lines · 2.8 KB

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

ModePurposeApplies ToOak Comparison
git_stockDefault installed Git.All scenarios.oak_default, oak_virtual_branch.
git_untracked_cacheSpeed up status in large trees with many untracked paths.Large-tree, ignored-heavy, wide-dirty-tree scenarios.oak_default.
git_split_indexReduce index write cost in large working trees.Large-tree and wide-dirty-tree scenarios.oak_default.
git_fsmonitorAvoid full filesystem scans when platform support exists.Large working-tree scenarios.oak_default.
git_sparse_checkoutMaterialize only task-relevant paths.Sparse task and large-tree scenarios.oak_space_mount, oak_mount_per_task.
git_worktreeIsolate per-task branches.Parallel-agent and branch-per-task scenarios.oak_space_mount, oak_virtual_branch.
git_lfsAvoid 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.