2 releases
Uses new Rust 2024
new 0.1.1 | Apr 22, 2025 |
---|---|
0.1.0 | Apr 22, 2025 |
#762 in Filesystem
75 downloads per month
Used in git-blame-pr
12KB
172 lines
git-blame-parser
Parses the output of git blame
command in
the porcelain format
into a struct.
the output must be generated using the --line-porcelain
option.
Usage
Run the following Cargo command in your project directory:
% cargo add git-blame-parser
Or add the following line to your Cargo.toml
:
[dependencies]
git-blame-parser = "0.1.1"
Then:
let output = std::process::Command::new("git")
.args(["blame", "--line-porcelain"])
.arg(filepath)
.output()
.unwrap();
if output.status.success() {
let raw_blame = String::from_utf8_lossy(&output.stdout);
let blames = match git_blame_parser::parse(&raw_blame) {
Ok(blames) => blames,
Err(e) => {
eprintln!("Error: {e}");
std::process::exit(1);
}
};
for blame in blames.iter() {
println!(
"* {}: {:0>4} by {} {}",
blame.short_commit(),
blame.original_line_no,
blame.author,
blame.author_mail
);
println!("summary: {}", blame.summary);
println!("content: `{}`", blame.content);
println!();
}
}
See also examples.