rust-lang / git2-rs

libgit2 bindings for Rust
https://docs.rs/git2
Apache License 2.0
1.7k stars 388 forks source link

DiffFormat::PatchHeader fails to print #1064

Open altsem opened 3 months ago

altsem commented 3 months ago

It seems that version 0.19.0 broke printing PatchHeader formatted diffs.

To reproduce (produces no lines):

fn main() {
    let repo = git2::Repository::open("..").unwrap();
    let diff = repo.diff_index_to_workdir(None, None).unwrap();

    diff.print(
        git2::DiffFormat::PatchHeader,
        |diffdelta, _maybe_hunk, line| {
            let line_content = std::str::from_utf8(line.content()).unwrap();
            print!("{}", line_content);
            true
        },
    );
}

Switching to version 0.18.3, or the format to git2::DiffFormat::PatchHeader seem to work as expected.