【问题标题】:LibGit2Sharp equivalent of git diff --statLibGit2Sharp 相当于 git diff --stat
【发布时间】:2015-05-12 18:20:29
【问题描述】:

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

我知道我可以从补丁中获得总 LinesAdded/Deleted,但我想逐个文件地考虑。

【问题讨论】:

    标签: libgit2 libgit2sharp


    【解决方案1】:

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

    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"];
    

    【讨论】:

    • 天才!正是我需要的——谢谢!也感谢您提供有关访问该文件的额外花絮!
    • 嗨@nultoken,你能帮我this question
    • @Carlos 看起来您已经完美地解决了您的问题!干杯。
    猜你喜欢
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    相关资源
    最近更新 更多