Viewing files at commit bd39a563b7f5Commit detailsView latest

Browse files
config/git_modes.json 234 lines · 5.2 KB · json
1
{
2
  "version": "2026-06-09.1",
3
  "modes": {
4
    "git_stock": {
5
      "setup": [],
6
      "applies_to": [
7
        "all"
8
      ],
9
      "compares_to_oak_modes": [
10
        "oak_default",
11
        "oak_virtual_branch"
12
      ],
13
      "fairness_note": "Baseline installed Git with no optional working-tree accelerators."
14
    },
15
    "git_untracked_cache": {
16
      "setup": [
17
        [
18
          "git",
19
          "update-index",
20
          "--untracked-cache"
21
        ]
22
      ],
23
      "applies_to": [
24
        "large-tree",
25
        "huge-tree",
26
        "ignored-heavy",
27
        "wide-dirty-tree"
28
      ],
29
      "compares_to_oak_modes": [
30
        "oak_default"
31
      ],
32
      "fairness_note": "Valid when status cost is dominated by untracked-file discovery."
33
    },
34
    "git_split_index": {
35
      "setup": [
36
        [
37
          "git",
38
          "update-index",
39
          "--split-index"
40
        ]
41
      ],
42
      "applies_to": [
43
        "large-tree",
44
        "huge-tree",
45
        "wide-dirty-tree"
46
      ],
47
      "compares_to_oak_modes": [
48
        "oak_default"
49
      ],
50
      "fairness_note": "Optimizes index writes; should be reported separately from stock Git."
51
    },
52
    "git_fsmonitor": {
53
      "setup": [
54
        [
55
          "git",
56
          "config",
57
          "core.fsmonitor",
58
          "true"
59
        ],
60
        [
61
          "git",
62
          "fsmonitor--daemon",
63
          "start"
64
        ],
65
        [
66
          "git",
67
          "status",
68
          "--porcelain=v1"
69
        ]
70
      ],
71
      "applies_to": [
72
        "large-tree",
73
        "huge-tree",
74
        "wide-dirty-tree"
75
      ],
76
      "compares_to_oak_modes": [
77
        "oak_default"
78
      ],
79
      "fairness_note": "Requires platform support. Mark unsupported when no fsmonitor daemon or hook is active."
80
    },
81
    "git_sparse_checkout": {
82
      "setup": [
83
        [
84
          "git",
85
          "sparse-checkout",
86
          "init",
87
          "--cone"
88
        ],
89
        [
90
          "git",
91
          "sparse-checkout",
92
          "set",
93
          "<fixture sparse paths>"
94
        ]
95
      ],
96
      "applies_to": [
97
        "sparse-task",
98
        "large-tree",
99
        "huge-tree"
100
      ],
101
      "compares_to_oak_modes": [
102
        "oak_space_mount",
103
        "oak_mount_per_task"
104
      ],
105
      "fairness_note": "Only valid for scenarios with explicit sparse-visible path sets."
106
    },
107
    "git_worktree": {
108
      "setup": [
109
        [
110
          "git",
111
          "worktree",
112
          "add",
113
          "<task path>",
114
          "-b",
115
          "<task branch>"
116
        ]
117
      ],
118
      "applies_to": [
119
        "parallel-agent",
120
        "branch-per-task"
121
      ],
122
      "compares_to_oak_modes": [
123
        "oak_space_mount",
124
        "oak_virtual_branch"
125
      ],
126
      "fairness_note": "Measures isolation strategy, not single-checkout branch switching."
127
    },
128
    "git_lfs": {
129
      "setup": [
130
        [
131
          "git",
132
          "lfs",
133
          "install",
134
          "--local"
135
        ],
136
        [
137
          "git",
138
          "lfs",
139
          "track",
140
          "*.bin"
141
        ]
142
      ],
143
      "applies_to": [
144
        "single_large_binary",
145
        "many_large_binaries",
146
        "single_huge_binary_1gb",
147
        "many_large_binaries_multigb"
148
      ],
149
      "compares_to_oak_modes": [
150
        "oak_default",
151
        "oak_space_mount"
152
      ],
153
      "fairness_note": "Requires Git LFS availability and fixture generation with LFS-tracked binaries."
154
    },
155
    "git_scalar": {
156
      "setup": [
157
        [
158
          "git",
159
          "config",
160
          "core.fsmonitor",
161
          "true"
162
        ],
163
        [
164
          "git",
165
          "config",
166
          "core.untrackedCache",
167
          "true"
168
        ],
169
        [
170
          "git",
171
          "config",
172
          "core.preloadIndex",
173
          "true"
174
        ],
175
        [
176
          "git",
177
          "config",
178
          "index.threads",
179
          "true"
180
        ],
181
        [
182
          "git",
183
          "config",
184
          "index.version",
185
          "4"
186
        ],
187
        [
188
          "git",
189
          "config",
190
          "core.multiPackIndex",
191
          "true"
192
        ],
193
        [
194
          "git",
195
          "config",
196
          "core.commitGraph",
197
          "true"
198
        ],
199
        [
200
          "git",
201
          "config",
202
          "status.aheadBehind",
203
          "false"
204
        ],
205
        [
206
          "git",
207
          "config",
208
          "gc.auto",
209
          "0"
210
        ],
211
        [
212
          "git",
213
          "fsmonitor--daemon",
214
          "start"
215
        ],
216
        [
217
          "git",
218
          "status",
219
          "--porcelain=v1",
220
          "--untracked-files=all"
221
        ]
222
      ],
223
      "applies_to": [
224
        "many_small_files",
225
        "wide_dirty_tree",
226
        "many_small_files_50k"
227
      ],
228
      "compares_to_oak_modes": [
229
        "oak_default"
230
      ],
231
      "fairness_note": "Scalar-recommended local configuration (git scalar.c set_recommended_config, local-performance keys), with the fsmonitor daemon started and the untracked cache warmed in recorded untimed setup rows. Applies to the large-tree scenarios Scalar targets; on small fixtures fsmonitor IPC makes it SLOWER than stock Git, so it is not a stronger baseline there. Oak comparisons use the strongest Git per cell (bench summary). Commit-graph/multi-pack-index files come from Scalar maintenance, not applicable to 1-3 commit core histories."
232
    }
233
  }
234
}