我正在寻找一种方法来捕获我的工作目录中每个文件中更改了多少行 - 就像 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"];

关于LibGit2Sharp 相当于 git diff --stat,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30198622/

10-13 05:24