-
-
Notifications
You must be signed in to change notification settings - Fork 260
/
revision.rs
26 lines (24 loc) · 1022 Bytes
/
revision.rs
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
use crate::{bstr::BStr, revision};
/// Methods for resolving revisions by spec or working with the commit graph.
impl crate::Repository {
/// Parse a revision specification and turn it into the full id to the object it describes, similar to `git rev-parse`.
pub fn rev_parse<'a>(&self, spec: impl Into<&'a BStr>) -> Result<revision::Spec<'_>, revision::spec::parse::Error> {
revision::Spec::from_bstr(
spec,
self,
revision::spec::parse::Options {
object_kind_hint: self.config.object_kind_hint,
..Default::default()
},
)
}
/// Create the baseline for a revision walk by initializing it with the `tips` to start iterating on.
///
/// It can be configured further before starting the actual walk.
pub fn rev_walk(
&self,
tips: impl IntoIterator<Item = impl Into<git_hash::ObjectId>>,
) -> revision::walk::Platform<'_> {
revision::walk::Platform::new(tips, self)
}
}