Viewing files at commit 2caecb1e6549Commit detailsView latest

Browse files
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.