LibGit2Sharp 相当于 git diff --stat

LibGit2Sharp equivalent of git diff --stat

我正在寻找一种方法来捕获我工作目录中每个文件中更改了多少行 - 就像 git 中的 git diff --stat - 有没有办法用 LibGit2Sharp 做到这一点?

我知道我可以从一个补丁中获得总数 LinesAdded/Deleted,但我想知道是逐个文件的。

下面将枚举两次提交之间更改的所有文件,以及更改的数量(全局、行添加和行删除)。

var patch = repo.Diff.Compare<Patch>(fromCommit, untilCommit);

foreach (var pec in patch)
{
    Console.WriteLine("{0} = {1} ({2}+ and {3}-)",
        pec.Path,
        pec.LinesAdded + pec.LinesDeleted,
        pec.LinesAdded,
        pec.LinesDeleted);
}

您是否需要访问 Patch 中的特定文件,这些类型公开了一个索引器以简化

PatchEntryChanges entryChanges = patch["path/to/my/file.txt"];