Skip to main content

Module git

Module git 

Source
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§

GitBlameRecordIter
GitBlameRequest
A decoded C2S_GIT_BLAME.
GitBlobRequest
A decoded C2S_GIT_BLOB.
GitCommitRecordIter
GitCommitsPage
A decoded S2C_GIT_COMMITS.
GitDiffRecordIter
GitDiffRequest
A decoded C2S_GIT_DIFF request.
GitDiscoverRecordIter
GitDiscoverRequest
A decoded C2S_GIT_DISCOVER.
GitEndpoint
One side of a GIT_DIFF/GIT_PATCH: [kind:1][oid:32]. The oid is meaningful only for COMMIT, TREE, and MERGE_BASE kinds.
GitFetchRecordIter
GitFetchRequest
A decoded C2S_GIT_FETCH.
GitHead
The current HEAD.
GitIndexRecordIter
GitIndexRequest
A decoded C2S_GIT_INDEX.
GitLogPage
A decoded S2C_GIT_LOG_PAGE.
GitLogRequest
A decoded C2S_GIT_LOG request.
GitOpState
The in-progress operation, if any.
GitOpenRequest
A decoded C2S_GIT_OPEN.
GitPatchRecordIter
GitPatchRequest
A decoded C2S_GIT_PATCH request.
GitRefState
One ref, keyed by name in GitStateMirror::refs.
GitReflogRecordIter
GitReflogRequest
A decoded C2S_GIT_REFLOG.
GitRemoteState
One configured remote, keyed by name in GitStateMirror::remotes.
GitRepoInfo
A decoded S2C_GIT_REPO.
GitStashEntry
One stash entry.
GitStateMirror
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”).
GitStateRecordIter
GitStatusEntry
One index/worktree status entry.
GitTreeRecordIter
GitTreeRequest
A decoded C2S_GIT_TREE. after empty = from the beginning; set it to a CURSOR record’s path to continue a truncated listing.
GitUpstreamState
Upstream tracking for one local branch, keyed by branch ref name in GitStateMirror::upstreams.

Enums§

GitBlameRecord
One decoded record from a GIT_BLAME response payload.
GitCommitRecord
One decoded record from a GIT_COMMITS payload.
GitDiffRecord
One decoded record from a GIT_DIFF response payload.
GitDiscoverRecord
One decoded record from a GIT_DISCOVER response payload.
GitFetchRecord
One decoded record from a GIT_FETCH response payload.
GitIndexRecord
One decoded record from a GIT_INDEX response payload.
GitPatchRecord
One decoded record from a structured GIT_PATCH response payload.
GitReflogRecord
One decoded record from a GIT_REFLOG response payload.
GitStateApply
What one GIT_STATE message did to the mirror.
GitStateRecord
One decoded record from a GIT_STATE payload.
GitTreeRecord
One decoded record from a GIT_TREE response 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 spec and pushes a GIT_LOG_PAGE, re-emitting whenever the resolved endpoints move (a ref the spec names changes). log_id is a client-assigned subscription id (unique per connection). flags are the same GIT_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] path is plain UTF-8 (client-chosen filesystem location, like FS_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] ref empty = HEAD.
C2S_GIT_RESOLVE
Resolve a revision spec to commit oids: [0xA6][nonce:2][repo_id:2][spec_len:2][spec:N] spec is any git revision expression — a ref name, (short) oid, HEAD~3, or a range A..B / A...B. The response gives tips/hides ready to feed msg_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_HELLO feature bit: server supports the GIT_* 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 from offset and size still 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 = frontier and the same hides.
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 filter driver, 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/eol normalization 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 rename byte 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 concurrent gc cannot 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 t flag, distinct from its +). Its own bit rather than folded into FORCED, 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
path must 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_REMOTE record per configured remote; implies WATCH. 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’s GIT binary patch block instead of the Binary files … differ sentence — 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 patch git apply can 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
data is records (the default); clear = classic unified diff text.
GIT_PATCH_TEXT
Classic unified diff as raw data instead 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. TRUNCATED set with no CURSOR record 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
peeled is valid (annotated tag).
GIT_REF_SYMBOLIC
GIT_REMOTE_DEFAULT
The remote whose HEAD the checkout’s default branch tracks.
GIT_RENAME_MAX
The similarity threshold a rename byte may carry: 0 is the exact-oid join, 1..=100 a percentage, anything above is INVALID.
GIT_REPO_BARE
GIT_REPO_FETCHABLE
GIT_FETCH will be attempted for this repo: fetch is enabled (BLIT_GIT_FETCH) and a git binary was found. Capability is answered per repository rather than per connection because it can differ per repository.
GIT_REPO_ID_INVALID
repo_id reported by a failed GIT_REPO, and the “no context” sentinel for GIT_OPEN’s src_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_id follow. A snapshot past the per-message byte budget spans several GIT_STATE messages sharing one state_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_len or a size cap; size fields still carry truth.
GIT_STATUS_UNKNOWN_ID
repo_id unknown 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] size is always the true object size, even on TOO_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. flags bit 0 MORE marks a truncated head page — pull older history statelessly with GIT_LOG from frontier.
S2C_GIT_PATCH
Patch response: [0xAE][nonce:2][status:1][flags:1][data:LZ4] data is records when STRUCTURED, 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_INVALID and workdir carries 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_COMMITS records buffer.
append_git_diff_record
Append one record to an uncompressed GIT_DIFF records buffer.
append_git_discover_record
append_git_fetch_record
append_git_index_record
Append one record to an uncompressed GIT_INDEX records buffer.
append_git_patch_record
Append one record to an uncompressed GIT_PATCH records buffer.
append_git_reflog_record
append_git_state_record
Append one record to an uncompressed GIT_STATE records buffer.
append_git_tree_record
Append one record to an uncompressed GIT_TREE records buffer.
git_blame_records
git_commit_records
Iterate records in an uncompressed GIT_COMMITS payload.
git_diff_records
Iterate records in an uncompressed GIT_DIFF response payload.
git_discover_records
git_fetch_records
git_index_records
Iterate records in an uncompressed GIT_INDEX response payload.
git_open_rebase
Rebase a pty-relative C2S_GIT_OPEN onto a resolved cwd: join cwd/path and clear src_pty_id, producing the plain path-based open the handler consumes. cwd None (source pty gone) keeps path verbatim.
git_patch_records
Iterate records in an uncompressed structured GIT_PATCH payload.
git_reflog_records
git_state_records
Iterate records in an uncompressed GIT_STATE payload.
git_status_text
Human-readable name for a GIT_STATUS_* code. Total: OTHER and 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_TREE response payload.
msg_git_ack
msg_git_base
msg_git_base_resp
Build a GIT_BASE response; bases comes best-first, empty with OK meaning 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_BLOB response; size is the true object size, data the (possibly truncated to nothing on error) raw object bytes.
msg_git_cancel
msg_git_close
msg_git_closed
msg_git_commits
Build a GIT_COMMITS from an uncompressed records buffer.
msg_git_diff
msg_git_diff_resp
Build a GIT_DIFF response 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_INDEX response 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_PATCH response. data is an uncompressed records buffer when flags has GIT_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_STATE from an uncompressed records buffer.
msg_git_tree
msg_git_tree_resp
Build a GIT_TREE response from an uncompressed records buffer.
parse_git_ack
Parse C2S_GIT_ACK into (repo_id, state_id).
parse_git_base
Parse C2S_GIT_BASE into (nonce, repo_id, oids).
parse_git_base_resp
Parse an S2C_GIT_BASE into (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_BLOB into (nonce, status, size, data).
parse_git_cancel
parse_git_close
parse_git_closed
Parse S2C_GIT_CLOSED into (repo_id, reason).
parse_git_commits
parse_git_diff
parse_git_diff_resp
Parse an S2C_GIT_DIFF into (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_INDEX into (nonce, status, flags, records).
parse_git_log
parse_git_log_ack
Parse C2S_GIT_LOG_ACK into (log_id, repo_id, update_id).
parse_git_log_page
parse_git_log_unwatch
Parse C2S_GIT_LOG_UNWATCH into (log_id, repo_id).
parse_git_log_watch
Parse C2S_GIT_LOG_WATCH into (log_id, repo_id, flags, limit, spec).
parse_git_open
parse_git_patch
parse_git_patch_resp
Parse an S2C_GIT_PATCH into (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_RESOLVE into (nonce, repo_id, spec).
parse_git_resolve_resp
Parse an S2C_GIT_RESOLVE into (nonce, status, tips, hides).
parse_git_state
Parse S2C_GIT_STATE into (repo_id, state_id, flags, records), decompressed under the standard guard.
parse_git_tree
parse_git_tree_resp
Parse an S2C_GIT_TREE into (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).