//! Error type for hard git failures.
//!
//! Note the [`crate::Cache`] contract: a path that simply isn't a git
//! working tree (or a missing `git` binary) is *not* an error — it is
//! reported as `Ok(None)`. [`Error`] is reserved for a git that is
//! present but failing on the happy path (after `HEAD` is confirmed).
/// Errors returned when git is present but a command fails.
///
/// The "not a git tree" / "git absent" cases never produce an `Error`;
/// they surface as `Ok(None)` from [`Cache::new`](crate::Cache::new) and
/// [`Pool::get`](crate::Pool::get).