33 lines · 1.3 KB · Rust
RawDownload
//! Revisions is the generalized notion of a commit.//!//! This module provides utilities to walk graphs of revisions and specify revisions and ranges of revisions. #[cfg(feature = "revision")]pub use gix_revision as plumbing; ///pub mod walk;pub use walk::iter_impl::Walk; ///#[cfg(feature = "revision")]pub mod spec; /// The specification of a revision as parsed from a revision specification like `HEAD@{1}` or `v1.2.3...main`./// It's typically created by [`repo.rev_parse()`][crate::Repository::rev_parse()].////// See the [official git documentation](https://git-scm.com/docs/git-rev-parse#_specifying_revisions) for reference on how/// to specify revisions and revision ranges.#[derive(Clone, Debug)]#[cfg(feature = "revision")]pub struct Spec<'repo> {    pub(crate) inner: gix_revision::Spec,    /// The path we encountered in the revspec, like `@:<path>` or `@..@~1:<path>`.    pub(crate) path: Option<(crate::bstr::BString, gix_object::tree::EntryMode)>,    /// The first name of a reference as seen while parsing a `RevSpec`, for completeness.    pub(crate) first_ref: Option<gix_ref::Reference>,    /// The second name of a reference as seen while parsing a `RevSpec`, for completeness.    pub(crate) second_ref: Option<gix_ref::Reference>,    /// The owning repository.    pub repo: &'repo crate::Repository,}