【发布时间】:2015-05-12 18:20:29
【问题描述】:
我正在寻找一种方法来捕获我的工作目录中每个文件中更改了多少行 - 比如 git 中的git diff --stat - 有没有办法用 LibGit2Sharp 做到这一点?
我知道我可以从补丁中获得总 LinesAdded/Deleted,但我想逐个文件地考虑。
【问题讨论】:
标签: libgit2 libgit2sharp
我正在寻找一种方法来捕获我的工作目录中每个文件中更改了多少行 - 比如 git 中的git diff --stat - 有没有办法用 LibGit2Sharp 做到这一点?
我知道我可以从补丁中获得总 LinesAdded/Deleted,但我想逐个文件地考虑。
【问题讨论】:
标签: libgit2 libgit2sharp
以下将枚举两次提交之间已更改的所有文件,以及更改的数量(全局、添加行和删除行)。
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"];
【讨论】: