Expand description
Git introspection (docs/git.md): opcodes, record codecs, and the client-side state mirror reducer. Git introspection wire protocol (docs/git.md).
Mutable, small repository state — HEAD, refs, in-progress operation,
index/worktree status — is pushed as whole-snapshot GIT_STATE
messages the client applies by replacement ([GitStateMirror]).
Immutable, large content — commits, trees, blobs, diffs, patches — is
pulled by content address through nonce-correlated request/response
pairs that share an opcode value across directions.
All integers little-endian, tightly packed, as everywhere in the protocol.
Structs§
- GitBlame
Record Iter - GitBlame
Request - A decoded
C2S_GIT_BLAME. - GitBlob
Request - A decoded
C2S_GIT_BLOB. - GitCommit
Record Iter - GitCommits
Page - A decoded
S2C_GIT_COMMITS. - GitDiff
Record Iter - GitDiff
Request - A decoded
C2S_GIT_DIFFrequest. - GitDiscover
Record Iter - GitDiscover
Request - A decoded
C2S_GIT_DISCOVER. - GitEndpoint
- One side of a
GIT_DIFF/GIT_PATCH:[kind:1][oid:32]. The oid is meaningful only forCOMMIT,TREE, andMERGE_BASEkinds. - GitFetch
Record Iter - GitFetch
Request - A decoded
C2S_GIT_FETCH. - GitHead
- The current HEAD.
- GitIndex
Record Iter - GitIndex
Request - A decoded
C2S_GIT_INDEX. - GitLog
Page - A decoded
S2C_GIT_LOG_PAGE. - GitLog
Request - A decoded
C2S_GIT_LOGrequest. - GitOp
State - The in-progress operation, if any.
- GitOpen
Request - A decoded
C2S_GIT_OPEN. - GitPatch
Record Iter - GitPatch
Request - A decoded
C2S_GIT_PATCHrequest. - GitRef
State - One ref, keyed by name in
GitStateMirror::refs. - GitReflog
Record Iter - GitReflog
Request - A decoded
C2S_GIT_REFLOG. - GitRemote
State - One configured remote, keyed by name in
GitStateMirror::remotes. - GitRepo
Info - A decoded
S2C_GIT_REPO. - GitStash
Entry - One stash entry.
- GitState
Mirror - The complete client obligation for
GIT_STATE: each snapshot replaces the whole typed state — no diffing, no staging (docs/git.md “GIT_STATE / GIT_ACK”). - GitState
Record Iter - GitStatus
Entry - One index/worktree status entry.
- GitTree
Record Iter - GitTree
Request - A decoded
C2S_GIT_TREE.afterempty = from the beginning; set it to aCURSORrecord’s path to continue a truncated listing. - GitUpstream
State - Upstream tracking for one local branch, keyed by branch ref name in
GitStateMirror::upstreams.
Enums§
- GitBlame
Record - One decoded record from a
GIT_BLAMEresponse payload. - GitCommit
Record - One decoded record from a
GIT_COMMITSpayload. - GitDiff
Record - One decoded record from a
GIT_DIFFresponse payload. - GitDiscover
Record - One decoded record from a
GIT_DISCOVERresponse payload. - GitFetch
Record - One decoded record from a
GIT_FETCHresponse payload. - GitIndex
Record - One decoded record from a
GIT_INDEXresponse payload. - GitPatch
Record - One decoded record from a structured
GIT_PATCHresponse payload. - GitReflog
Record - One decoded record from a
GIT_REFLOGresponse payload. - GitState
Apply - What one
GIT_STATEmessage did to the mirror. - GitState
Record - One decoded record from a
GIT_STATEpayload. - GitTree
Record - One decoded record from a
GIT_TREEresponse payload.
Constants§
- C2S_
GIT_ ACK - Acknowledge a state snapshot: [0xA2][repo_id:2][state_id:4]
- C2S_
GIT_ BASE - Merge bases of an oid set: [0xB0][nonce:2][repo_id:2][n_oids:1][oids:32·N]
- C2S_
GIT_ BLAME - Line attribution: [0xB2][nonce:2][repo_id:2][flags:1][oid:32][start_line:4][line_count:4][path_len:2][path:N][after_len:2][after:N]
- C2S_
GIT_ BLOB - Fetch object bytes: [0xAC][nonce:2][repo_id:2][oid:32][path_len:2][path:N][max_len:4]
- C2S_
GIT_ CANCEL - Advisory cancel of an in-flight request: [0xA3][nonce:2]
- C2S_
GIT_ CLOSE - Release a repo id: [0xA1][repo_id:2]
- C2S_
GIT_ DIFF - File-level diff between two endpoints: [0xAD][nonce:2][repo_id:2][flags:1][old_kind:1][old:32][new_kind:1][new:32][path_len:2][path:N]
- C2S_
GIT_ DISCOVER - Enumerate repositories under a path: [0xB1][nonce:2][flags:1][depth:1][path_len:2][path:N][after_len:2][after:N] A bounded downward search. Allocates no repo ids — it answers “what is here”, not “give me a handle”.
- C2S_
GIT_ FETCH - Fetch from a remote: [0xB4][nonce:2][repo_id:2][flags:1][timeout_ms:4][remote_len:2][remote:N][n_refspecs:2][(len:2, refspec:N)·N]
- C2S_
GIT_ INDEX - Enumerate index entries: [0xAF][nonce:2][repo_id:2][path_len:2][path:N]
- C2S_
GIT_ LOG - Walk
hides..tips: [0xA7][nonce:2][repo_id:2][flags:1][limit:2][path_len:2][path:N][n_tips:2][tips:32·N][n_hides:2][hides:32·N] - C2S_
GIT_ LOG_ ACK - Acknowledge a log page (coalescing pacing): [0xAA][log_id:2][repo_id:2][update_id:4]
- C2S_
GIT_ LOG_ UNWATCH - End a log subscription: [0xA9][log_id:2][repo_id:2]
- C2S_
GIT_ LOG_ WATCH - Subscribe to a live log of a spec: [0xA8][log_id:2][repo_id:2][flags:1][limit:2][spec_len:2][spec:N]
The server resolves
specand pushes aGIT_LOG_PAGE, re-emitting whenever the resolved endpoints move (a ref the spec names changes).log_idis a client-assigned subscription id (unique per connection).flagsare the sameGIT_LOG_*bits. - C2S_
GIT_ OPEN - Open (discover) a repository: [0xA0][nonce:2][flags:1][refs_latency_ms:2][status_latency_ms:2][path_len:2][path:N]
pathis plain UTF-8 (client-chosen filesystem location, likeFS_SYNC). - C2S_
GIT_ PATCH - Render-ready patch rows: [0xAE][nonce:2][repo_id:2][flags:1][context:1][old_kind:1][old:32][new_kind:1][new:32][path_len:2][path:N][max_len:4]
- C2S_
GIT_ REFLOG - Reflog traversal: [0xB3][nonce:2][repo_id:2][flags:1][limit:2][ref_len:2][ref:N][after_len:2][after:N]
refempty = HEAD. - C2S_
GIT_ RESOLVE - Resolve a revision spec to commit oids: [0xA6][nonce:2][repo_id:2][spec_len:2][spec:N]
specis any git revision expression — a ref name, (short) oid,HEAD~3, or a rangeA..B/A...B. The response givestips/hidesready to feedmsg_git_log. - C2S_
GIT_ TREE - List one tree level: [0xAB][nonce:2][repo_id:2][oid:32][path_len:2][path:N]
- FEATURE_
GIT S2C_HELLOfeature bit: server supports theGIT_*message family.- GIT_
BLAME_ FOLLOW_ COPIES - Follow copies (git’s
-C); materially more expensive. - GIT_
BLAME_ FOLLOW_ RENAMES - Follow renames (git’s
-M). - GIT_
BLAME_ RECORD_ RANGE - GIT_
BLAME_ TRUNCATED - GIT_
BLOB_ WHOLE - Deliver the whole object or answer
TOO_LARGE. Without it a request is a window: the server returns what fits fromoffsetandsizestill carries the true object size, so a viewer can render the head of a file too large to ship whole. - GIT_
CLOSED_ BACKEND_ FAILED - GIT_
CLOSED_ CLIENT_ REQUEST - GIT_
CLOSED_ PERMISSION_ LOST - GIT_
CLOSED_ REPO_ GONE - GIT_
CLOSED_ RESOURCE_ LIMIT - GIT_
COMMITS_ MORE - Partial page; continue with
tips = frontierand the samehides. - GIT_
COMMIT_ LOSSY_ ENCODING - Bytes were replaced re-encoding name/email/message to UTF-8.
- GIT_
COMMIT_ RECORD_ COMMIT - GIT_
COMMIT_ RECORD_ PATH_ AT - GIT_
DIFF_ ENTRY_ BINARY - GIT_
DIFF_ ENTRY_ FILTERED - The path’s gitattributes name a
filterdriver, so the object bytes and the worktree bytes are not comparable (an LFS pointer against the asset it stands for). No rows are emitted: a client renders “filtered file changed” rather than a wrong whole-file rewrite. - GIT_
DIFF_ ENTRY_ SUBMODULE - GIT_
DIFF_ IGNORED - GIT_
DIFF_ IGNORE_ ALL_ SPACE - Whitespace ignored entirely (git
-w). - GIT_
DIFF_ IGNORE_ SPACE_ CHANGE - Runs of whitespace compare equal, trailing whitespace ignored (git
-b). - GIT_
DIFF_ RAW - Compare on-disk bytes as they are: skip the
text/eolnormalization the worktree side gets by default from the path’s gitattributes. - GIT_
DIFF_ RECORD_ BASE - GIT_
DIFF_ RECORD_ ENTRY - GIT_
DIFF_ RENAMES - Rename/copy detection. The
renamebyte carries the similarity threshold; this bit alone means the exact-oid join (threshold 100). - GIT_
DIFF_ RENAME_ LIMIT - Similarity rename detection was skipped: the unmatched add/delete
candidate set exceeded
BLIT_GIT_RENAME_LIMIT, so the response fell back to the exact-oid join. Renders as “rename detection skipped” instead of unexplained delete+add pairs. - GIT_
DIFF_ TRUNCATED - GIT_
DIFF_ UNTRACKED - Worktree endpoint reports untracked files as additions.
- GIT_
DISCOVER_ BARE - Report bare repositories too.
- GIT_
DISCOVER_ NESTED - Descend into a repository once one is found (off by default, so a tree of vendored checkouts costs nothing).
- GIT_
DISCOVER_ RECORD_ REPO - GIT_
DISCOVER_ TRUNCATED - GIT_
ENDPOINT_ COMMIT - GIT_
ENDPOINT_ EMPTY - GIT_
ENDPOINT_ INDEX - GIT_
ENDPOINT_ MERGE_ BASE - Old side only: the server substitutes
merge-base(oid, new), reading the new side as HEAD when it is INDEX or WORKTREE. - GIT_
ENDPOINT_ TREE - GIT_
ENDPOINT_ WORKTREE - GIT_
FETCH_ ANCHOR - Anchor every fetched tip under
refs/blit/fetch/<remote>/<n>so a concurrentgccannot prune it before the client diffs it. - GIT_
FETCH_ NO_ TAGS - GIT_
FETCH_ PRUNE - GIT_
FETCH_ RECORD_ REF - GIT_
FETCH_ REF_ FORCED - GIT_
FETCH_ REF_ NEW - GIT_
FETCH_ REF_ PRUNED - GIT_
FETCH_ REF_ TAG_ UPDATE - An existing tag was moved (git’s
tflag, distinct from its+). Its own bit rather than folded intoFORCED, because git distinguishes the two and a client showing “the tag you pinned now points elsewhere” wants the distinction. - GIT_
FOUND_ BARE - GIT_
FOUND_ LINKED - GIT_
FOUND_ SUBMODULE - GIT_
HEAD_ DETACHED - GIT_
HEAD_ UNBORN - GIT_
INDEX_ INTENT_ TO_ ADD - GIT_
INDEX_ RECORD_ ENTRY - GIT_
INDEX_ SKIP_ WORKTREE - GIT_
INDEX_ TRUNCATED - GIT_
LOG_ FIRST_ PARENT - GIT_
LOG_ FOLLOW pathmust name a single file; the walk tracks it across renames.- GIT_
LOG_ FULL_ MESSAGE - Full commit message; default first line only.
- GIT_
LOG_ PATH_ OIDS - After each commit, emit the object at the rename-adjusted
path. - GIT_
LOG_ TOPO - Topological order; default committer-date.
- GIT_
OID_ FORMAT_ SHA1 - SHA-1: 20 bytes used.
- GIT_
OID_ FORMAT_ SHA256 - SHA-256: all 32 bytes used.
- GIT_
OID_ NONE - The all-zero oid: absent (unborn branch, unhashed worktree side, deleted side of a diff).
- GIT_
OPEN_ IGNORED - Status includes ignored files; implies
UNTRACKED. - GIT_
OPEN_ KNOWN - Every flag this build understands; anything else is
INVALID. - GIT_
OPEN_ NO_ CONTEXT GIT_OPEN.src_pty_id/parent_repo_id: no such context.- GIT_
OPEN_ REMOTES - Include one
STATE_REMOTErecord per configured remote; impliesWATCH. URLs go out as configured. - GIT_
OPEN_ STATUS - Include index/worktree status records in state; implies
WATCH. - GIT_
OPEN_ TRACKING - Include per-branch upstream records in state; implies
WATCH. - GIT_
OPEN_ UNTRACKED - Status includes untracked files.
- GIT_
OPEN_ WATCH - Stream
GIT_STATE. - GIT_
OP_ BISECT - GIT_
OP_ CHERRY_ PICK - GIT_
OP_ MERGE - GIT_
OP_ REBASE - GIT_
OP_ REVERT - GIT_
OTYPE_ BLOB - GIT_
OTYPE_ COMMIT - Submodule: the entry’s oid is a commit.
- GIT_
OTYPE_ TREE - GIT_
PATCH_ BINARY - With
TEXT, emit binary content as git’sGIT binary patchblock instead of theBinary files … differsentence — git’s--binary, under git’s own rule that it is asked for rather than assumed. A patch carrying a 40 MiB PNG is not what a review surface wants by default, and it is the difference between a patchgit applycan replay and one it refuses. - GIT_
PATCH_ CHAR_ SPANS - Character-granularity spans instead of the default word granularity.
- GIT_
PATCH_ FILE_ BINARY - Binary file: no rows follow.
- GIT_
PATCH_ FILE_ FILTERED - Filtered file: no rows follow (see
GIT_DIFF_ENTRY_FILTERED). - GIT_
PATCH_ IGNORED - GIT_
PATCH_ IGNORE_ ALL_ SPACE - GIT_
PATCH_ IGNORE_ SPACE_ CHANGE - GIT_
PATCH_ NO_ SPANS - Skip intraline refinement entirely, for whole-line renderers.
- GIT_
PATCH_ RAW - GIT_
PATCH_ RECORD_ BASE - GIT_
PATCH_ RECORD_ FILE - GIT_
PATCH_ RECORD_ GAP - GIT_
PATCH_ RECORD_ ROW - GIT_
PATCH_ RENAMES - GIT_
PATCH_ STRUCTURED datais records (the default); clear = classic unified diff text.- GIT_
PATCH_ TEXT - Classic unified diff as raw
datainstead of records. - GIT_
PATCH_ TRUNCATED - GIT_
PATCH_ UNTRACKED - GIT_
RECORD_ CURSOR - Reserved family-wide in every records payload: the continuation point of
a response a budget cut short.
TRUNCATEDset with noCURSORrecord means the response is genuinely unresumable. - GIT_
REFLOG_ OLDEST_ FIRST - Oldest entry first; default is newest-first, matching
git reflog. - GIT_
REFLOG_ RECORD_ ENTRY - GIT_
REFLOG_ TRUNCATED - GIT_
REF_ PEELED_ VALID peeledis valid (annotated tag).- GIT_
REF_ SYMBOLIC - GIT_
REMOTE_ DEFAULT - The remote whose
HEADthe checkout’s default branch tracks. - GIT_
RENAME_ MAX - The similarity threshold a
renamebyte may carry:0is the exact-oid join,1..=100a percentage, anything above isINVALID. - GIT_
REPO_ BARE - GIT_
REPO_ FETCHABLE GIT_FETCHwill be attempted for this repo: fetch is enabled (BLIT_GIT_FETCH) and agitbinary was found. Capability is answered per repository rather than per connection because it can differ per repository.- GIT_
REPO_ ID_ INVALID repo_idreported by a failedGIT_REPO, and the “no context” sentinel forGIT_OPEN’ssrc_pty_id/parent_repo_id.- GIT_
REPO_ LINKED - Linked worktree.
- GIT_
REPO_ SHALLOW - GIT_
REPO_ SPARSE - Sparse-checkout active.
- GIT_
REPO_ WRITABLE - Reserved for the mutation family (docs/design/git.md “Mutation”); clear
in this build, and clear whenever
BLIT_GIT_WRITE=0. - GIT_
STATE_ PARTIAL - More records for this
state_idfollow. A snapshot past the per-message byte budget spans severalGIT_STATEmessages sharing onestate_id; the client accumulates and replaces its map on the chunk with this bit clear, so it never observes a half-built snapshot. Only the final chunk is acked, so the one-in-flight pacing is unchanged. - GIT_
STATE_ RECORD_ HEAD - GIT_
STATE_ RECORD_ OP - GIT_
STATE_ RECORD_ REF - GIT_
STATE_ RECORD_ REMOTE - GIT_
STATE_ RECORD_ STASH - GIT_
STATE_ RECORD_ STATUS - GIT_
STATE_ RECORD_ UPSTREAM - GIT_
STATE_ REFS_ TRUNCATED - GIT_
STATE_ STATUS_ TRUNCATED - GIT_
STATUS_ BUDGET - A budget was exhausted with no way to paginate or truncate.
- GIT_
STATUS_ CANCELLED - Ended by
GIT_CANCEL. - GIT_
STATUS_ CONFLICT - A precondition failed (a lock was held, or the repository moved under a request). Shares docs/design/fs-write.md’s code rather than minting a synonym, so a client’s status mapping stays one table.
- GIT_
STATUS_ ENTRY_ CONFLICTED - GIT_
STATUS_ INVALID - Malformed request (unknown flags, bad endpoint combination).
- GIT_
STATUS_ NOT_ FOUND - Path or object does not exist.
- GIT_
STATUS_ NO_ MERGE_ BASE - A MERGE_BASE endpoint over histories with no common ancestor. Distinct
from
INVALID: the request is well-formed, the repository just has no such base, and a client can say so instead of blaming itself. - GIT_
STATUS_ OK - GIT_
STATUS_ OTHER - Diagnostic in the message’s detail field where it has one.
- GIT_
STATUS_ PERMISSION - GIT_
STATUS_ TOO_ LARGE - Over
max_lenor a size cap; size fields still carry truth. - GIT_
STATUS_ UNKNOWN_ ID repo_idunknown or already closed.- GIT_
STATUS_ WRONG_ TYPE - Object is not what the request requires.
- GIT_
TREE_ RECORD_ ENTRY - GIT_
TREE_ TRUNCATED - GIT_
UPSTREAM_ COUNTS_ VALID - Unset when the walk budget was hit; names still valid.
- GIT_
UPSTREAM_ GONE - Upstream configured but its ref is missing; counts zero.
- S2C_
GIT_ BASE - Merge-base response: [0xB0][nonce:2][status:1][n_bases:1][bases:32·N]
- S2C_
GIT_ BLAME - Blame response: [0xB2][nonce:2][status:1][flags:1][records:LZ4]
- S2C_
GIT_ BLOB - Blob response: [0xAC][nonce:2][status:1][size:8][data:LZ4]
sizeis always the true object size, even onTOO_LARGE. - S2C_
GIT_ CLOSED - Repo ended server-side: [0xA5][repo_id:2][reason:1]
- S2C_
GIT_ COMMITS - Log response: [0xA7][nonce:2][status:1][flags:1][n_frontier:2][frontier:32·N][records:LZ4]
- S2C_
GIT_ DIFF - Diff response: [0xAD][nonce:2][status:1][flags:1][records:LZ4]
- S2C_
GIT_ DISCOVER - Discovery response: [0xB1][nonce:2][status:1][flags:1][records:LZ4]
- S2C_
GIT_ FETCH - Fetch response: [0xB4][nonce:2][status:1][flags:1][records:LZ4]
- S2C_
GIT_ INDEX - Index response: [0xAF][nonce:2][status:1][flags:1][records:LZ4]
- S2C_
GIT_ LOG_ PAGE - Live log page: [0xA8][log_id:2][update_id:4][status:1][flags:1][n_frontier:2][frontier:32·N][records:LZ4]
Same records as
GIT_COMMITS; re-sent (coalesced, acked) when the subscription’s resolved endpoints move.flagsbit 0MOREmarks a truncated head page — pull older history statelessly withGIT_LOGfromfrontier. - S2C_
GIT_ PATCH - Patch response: [0xAE][nonce:2][status:1][flags:1][data:LZ4]
datais records whenSTRUCTURED, else a classic unified diff. - S2C_
GIT_ REFLOG - Reflog response: [0xB3][nonce:2][status:1][flags:1][records:LZ4]
- S2C_
GIT_ REPO - Open outcome: [0xA0][nonce:2][repo_id:2][status:1][oid_format:1][flags:1][workdir_len:2][workdir:N][gitdir_len:2][gitdir:N]
On failure
repo_id=GIT_REPO_ID_INVALIDandworkdircarries a diagnostic; on success both paths are canonical, escaped. - S2C_
GIT_ RESOLVE - Resolve response: [0xA6][nonce:2][status:1][n_tips:2][tips:32·N][n_hides:2][hides:32·N]
- S2C_
GIT_ STATE - Whole-state snapshot: [0xA4][repo_id:2][state_id:4][flags:1][records:LZ4]
- S2C_
GIT_ TREE - Tree response: [0xAB][nonce:2][status:1][flags:1][records:LZ4]
Functions§
- append_
git_ blame_ record - append_
git_ commit_ record - Append one record to an uncompressed
GIT_COMMITSrecords buffer. - append_
git_ diff_ record - Append one record to an uncompressed
GIT_DIFFrecords buffer. - append_
git_ discover_ record - append_
git_ fetch_ record - append_
git_ index_ record - Append one record to an uncompressed
GIT_INDEXrecords buffer. - append_
git_ patch_ record - Append one record to an uncompressed
GIT_PATCHrecords buffer. - append_
git_ reflog_ record - append_
git_ state_ record - Append one record to an uncompressed
GIT_STATErecords buffer. - append_
git_ tree_ record - Append one record to an uncompressed
GIT_TREErecords buffer. - git_
blame_ records - git_
commit_ records - Iterate records in an uncompressed
GIT_COMMITSpayload. - git_
diff_ records - Iterate records in an uncompressed
GIT_DIFFresponse payload. - git_
discover_ records - git_
fetch_ records - git_
index_ records - Iterate records in an uncompressed
GIT_INDEXresponse payload. - git_
open_ rebase - Rebase a pty-relative
C2S_GIT_OPENonto a resolvedcwd: joincwd/pathand clearsrc_pty_id, producing the plain path-based open the handler consumes.cwdNone(source pty gone) keepspathverbatim. - git_
patch_ records - Iterate records in an uncompressed structured
GIT_PATCHpayload. - git_
reflog_ records - git_
state_ records - Iterate records in an uncompressed
GIT_STATEpayload. - git_
status_ text - Human-readable name for a
GIT_STATUS_*code. Total:OTHERand an unrecognized code are distinct, so a consumer that logs this text can tell “the backend failed” from “this build does not know that code”. - git_
tree_ records - Iterate records in an uncompressed
GIT_TREEresponse payload. - msg_
git_ ack - msg_
git_ base - msg_
git_ base_ resp - Build a
GIT_BASEresponse;basescomes best-first, empty withOKmeaning disjoint histories. - msg_
git_ blame - msg_
git_ blame_ resp - Build the response from an uncompressed records buffer.
- msg_
git_ blob - msg_
git_ blob_ resp - Build a
GIT_BLOBresponse;sizeis the true object size,datathe (possibly truncated to nothing on error) raw object bytes. - msg_
git_ cancel - msg_
git_ close - msg_
git_ closed - msg_
git_ commits - Build a
GIT_COMMITSfrom an uncompressed records buffer. - msg_
git_ diff - msg_
git_ diff_ resp - Build a
GIT_DIFFresponse from an uncompressed records buffer. - msg_
git_ discover - msg_
git_ discover_ resp - Build the response from an uncompressed records buffer.
- msg_
git_ fetch - msg_
git_ fetch_ resp - Build the response from an uncompressed records buffer.
- msg_
git_ index - msg_
git_ index_ resp - Build a
GIT_INDEXresponse from an uncompressed records buffer. - msg_
git_ log - msg_
git_ log_ ack - msg_
git_ log_ page - msg_
git_ log_ unwatch - msg_
git_ log_ watch - msg_
git_ open - msg_
git_ patch - msg_
git_ patch_ resp - Build a
GIT_PATCHresponse.datais an uncompressed records buffer whenflagshasGIT_PATCH_STRUCTURED, else unified-diff text. - msg_
git_ reflog - msg_
git_ reflog_ resp - Build the response from an uncompressed records buffer.
- msg_
git_ repo - msg_
git_ resolve - msg_
git_ resolve_ resp - msg_
git_ state - Build a
GIT_STATEfrom an uncompressed records buffer. - msg_
git_ tree - msg_
git_ tree_ resp - Build a
GIT_TREEresponse from an uncompressed records buffer. - parse_
git_ ack - Parse
C2S_GIT_ACKinto(repo_id, state_id). - parse_
git_ base - Parse
C2S_GIT_BASEinto(nonce, repo_id, oids). - parse_
git_ base_ resp - Parse an
S2C_GIT_BASEinto(nonce, status, bases). - parse_
git_ blame - parse_
git_ blame_ resp - Parse into
(nonce, status, flags, records), decompressing. - parse_
git_ blob - parse_
git_ blob_ resp - Parse an
S2C_GIT_BLOBinto(nonce, status, size, data). - parse_
git_ cancel - parse_
git_ close - parse_
git_ closed - Parse
S2C_GIT_CLOSEDinto(repo_id, reason). - parse_
git_ commits - parse_
git_ diff - parse_
git_ diff_ resp - Parse an
S2C_GIT_DIFFinto(nonce, status, flags, records). - parse_
git_ discover - parse_
git_ discover_ resp - Parse into
(nonce, status, flags, records), decompressing. - parse_
git_ fetch - parse_
git_ fetch_ resp - Parse into
(nonce, status, flags, records), decompressing. - parse_
git_ index - parse_
git_ index_ resp - Parse an
S2C_GIT_INDEXinto(nonce, status, flags, records). - parse_
git_ log - parse_
git_ log_ ack - Parse
C2S_GIT_LOG_ACKinto(log_id, repo_id, update_id). - parse_
git_ log_ page - parse_
git_ log_ unwatch - Parse
C2S_GIT_LOG_UNWATCHinto(log_id, repo_id). - parse_
git_ log_ watch - Parse
C2S_GIT_LOG_WATCHinto(log_id, repo_id, flags, limit, spec). - parse_
git_ open - parse_
git_ patch - parse_
git_ patch_ resp - Parse an
S2C_GIT_PATCHinto(nonce, status, flags, data). - parse_
git_ reflog - parse_
git_ reflog_ resp - Parse into
(nonce, status, flags, records), decompressing. - parse_
git_ repo - parse_
git_ resolve - Parse
C2S_GIT_RESOLVEinto(nonce, repo_id, spec). - parse_
git_ resolve_ resp - Parse an
S2C_GIT_RESOLVEinto(nonce, status, tips, hides). - parse_
git_ state - Parse
S2C_GIT_STATEinto(repo_id, state_id, flags, records), decompressed under the standard guard. - parse_
git_ tree - parse_
git_ tree_ resp - Parse an
S2C_GIT_TREEinto(nonce, status, flags, records).
Type Aliases§
- GitOid
- An object id: always 32 bytes on the wire, zero-padded past the
repository’s hash width (
GIT_REPO.oid_format).