Add basic gitlog

This commit is contained in:
2022-11-06 16:08:01 +01:00
parent a449640ed5
commit 738f4a9add
6 changed files with 355 additions and 17 deletions

View File

@@ -1,22 +1,17 @@
use git2::Repository;
use clap::Parser;
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
struct Cli {
#[arg(short, long, required = true)]
path: String,
}
fn main() -> eyre::Result<()> {
let repo = Repository::open(".git")?;
let mut revwalk = repo.revwalk()?;
revwalk.set_sorting(git2::Sort::TIME)?;
let args = Cli::parse();
let revspec = repo.revparse("HEAD")?;
let from = revspec.from().ok_or(eyre::anyhow!("could not get HEAD"))?;
revwalk.push(from.id())?;
for rev in revwalk.enumerate() {
let oid = rev.1?;
let commit = repo.find_commit(oid)?;
let message = commit
.message()
.ok_or(eyre::anyhow!("could not find message from commit"))?;
println!("rev: {}", message)
}
let log = gitlog_core::get_git_log(args.path)?;
println!("{}", log);
Ok(())
}