Skip to main content

Module git

Module git 

Source
Expand description

Decoupled git backend surface used by the pack walker and exec path.

Pack children reference git remotes (url, path, ref — see .omne/cfg/pack-spec.md §children). The walker needs to clone, fetch, and checkout these remotes; the exec path pins commits. Every one of those callers goes through the GitBackend trait rather than the gix crate directly, so:

  • tests can substitute an in-memory mock
  • a future IPC or CLI-shell backend can plug in without rewriting callers
  • backend-specific error types stay out of the public API (see error::GitError which uses String detail fields)

The default implementation, GixBackend, wraps the pure-Rust gix crate. Auth is the gix default: system SSH keys and anonymous HTTPS. Credential prompting, SSH-agent integration, shallow clones, submodules, and concurrent-fetch coordination are all out of scope for this slice and will land in later M3 slices.

Re-exports§

pub use self::error::GitError;
pub use self::gix_backend::GixBackend;

Modules§

error
Error taxonomy for the crate::git backend.
gix_backend
GitBackend implementation backed by the gix crate (pure-Rust git).

Structs§

ClonedRepo
Result of a successful clone.

Traits§

GitBackend
Stable surface for all git operations grex needs.