summaryrefslogtreecommitdiffstats
path: root/vendor/gix/src/revision/mod.rs
blob: 4b11a8766b6b4a71280f94ecc8aa25b08361c136 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//! Revisions is the generalized notion of a commit.
//!
//! This module provides utilities to walk graphs of revisions and specify revisions and ranges of revisions.

pub use gix_revision as plumbing;

///
pub mod walk;
pub use walk::iter::Walk;

///
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)]
pub struct Spec<'repo> {
    pub(crate) inner: gix_revision::Spec,
    /// 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>,
    pub(crate) repo: &'repo crate::Repository,
}