1use std::path::PathBuf;
3
4use clap::Parser;
5use girt::{ObjectId, Repo};
6
7#[derive(Parser)]
8#[command(about, long_about = None)]
9struct Args {
10 path: PathBuf,
12 commit: ObjectId,
14 other_commit: Option<ObjectId>,
16}
17
18fn main() -> Result<(), Box<dyn std::error::Error>> {
19 let args = Args::parse();
20 let root = args.commit;
21 let git = Repo::discover(args.path)?;
22
23 for entry in git.log(root)? {
24 let (id, _) = entry?;
25 println!("{id}");
26 }
27
28 if let Some(other) = args.other_commit {
29 let objects = git.repository().objects()?;
30 println!("ancestor: {}", objects.is_ancestor(root, other)?);
31 println!("merge bases: {:?}", objects.merge_bases(root, other)?);
32 }
33
34 Ok(())
35}