Expand description
Decoupled git backend surface used by the pack walker and exec path.
Pack children reference git remotes (url, path, ref — see
inst/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::GitErrorwhich usesStringdetail 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::gitbackend. - gix_
backend GitBackendimplementation backed by thegixcrate (pure-Rust git).
Structs§
- Backend
Lock Ctx - Per-call backend-lock context (v1.3.2 B11).
- Backend
Lock CtxOwned - Owned counterpart of
BackendLockCtx. Provides a convenient way for tests and callers that don’t otherwise carry a parent-meta + child-path pair to derive one from a flatdestpath:parent_meta = dest.parent(),child_path = dest.file_name(). Borrow withBackendLockCtxOwned::as_ctxat the trait-method call site. - Cloned
Repo - Result of a successful clone.
Traits§
- GitBackend
- Stable surface for all git operations grex needs.