1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
//! What:
//! In-process repository reads:
//! objects,
//! packs,
//! refs,
//! layout and configuration without starting Git.
//! Why:
//! Reading without a Git process is one capability.
//!
//! In TS you'd write (pseudocode):
//! ```ts
//! // repo_read/index.ts: one `export * from './file'` per module below.
//! ```
/// Captured read-only real-Git queries over raw bytes.
/// The Git starts of the layout questions for a user whose own file holds `core.fsmonitor = true`;
/// never part of the release executable.
/// The one query for repository identity,
/// top level and the path below it.
/// Lazily fetched repository facts behind one interface,
/// with the real-Git provider.
/// Files-backend ref reads that answer without a Git process or decline.
/// Proof, without a Git process, that a sequencer marker names nothing on the files ref storage.
/// The Git directories a command works in, found without starting Git.
/// The system configuration file a real Git executable reads, learned once per executable identity.
/// In-process repository reads: the plain-text configuration reader that gives up on any spelling it cannot prove.
/// In-process repository reads: proof that no configuration scope sets `core.bare` or `core.worktree`.
/// In-process repository reads: proof that every configuration value Git types at startup is one Git accepts silently.
/// In-process repository reads: the location, Git paths and object format found from the file system.
/// The layout reader's answer with some global options and variables left out.
/// In-process repository reads: the layout turned into the shapes the wrapper's existing queries answer with.
/// In-process repository reads: object kinds, names and the zlib step shared by loose objects and packs.
/// In-process repository reads: one pack, its index lookup and delta resolution.
/// In-process repository reads: the object database of a repository, its packs and alternates.
/// The abbreviated object name Git prints (`core.abbrev`, the automatic length, uniqueness), computed without starting Git.
/// In-process repository reads: trees, flattened trees and commit fields.
/// In-process repository reads: the part of a tree that differs from an index, found beside its cache-tree.
/// In-process repository reads: the entries of an index file, versions 2 to 4.
/// In-process repository reads: the difference between two sorted entry lists and the output spellings.
/// In-process repository reads: the files ref storage, one ref by name, a symbolic chain and the list of all refs.
/// In-process repository reads: the merged configuration listing with includes and environment entries.
/// In-process repository reads: answers to the exact read-only command lines the wrapper issues.
/// In-process repository reads: answers for the reference and configuration command lines.
/// In-process repository reads: the exit status of `diff-index --cached --quiet`.
/// In-process repository reads: the two runner entry points that try the answers before starting Git.