Skip to main content

wt/git/
mod.rs

1//! The Git boundary (spec §4): `gix` for reads, the `git` CLI for mutations and
2//! network operations. Submodules:
3//!
4//! - [`cli`] — the [`GitCli`](cli::GitCli) subprocess trait + [`RealGit`](cli::RealGit).
5//! - `ops` — verb-named wrappers over [`GitCli`] for shared mutations.
6//! - [`discover`] — repository discovery and identity via `gix`.
7//! - [`porcelain`] — pure parsers for `git` porcelain output.
8//! - [`submodule`] — submodule detection (`status`) and init (`update --init`).
9//! - [`worktrees`] — worktree enumeration + missing detection.
10
11pub mod aheadbehind;
12pub mod cli;
13pub mod commit;
14pub mod discover;
15pub(crate) mod ops;
16pub mod porcelain;
17pub mod refs;
18pub mod status;
19pub mod submodule;
20pub mod worktrees;
21
22pub(crate) use aheadbehind::ahead_behind;
23pub use cli::{GitCli, GitOutput, RealGit};
24pub(crate) use commit::{CommitInfo, abbrev_len, commit_info, recent_commits};
25pub(crate) use refs::{
26    Upstream, all_branches, branch_ref, current_branch, default_base_ref, default_branch,
27    is_ancestor, local_branches, origin_head_branch, remote_branches, resolve_hex, upstream_of,
28    validate_branch_name,
29};
30pub(crate) use status::status_of;
31pub(crate) use worktrees::enumerate;