【问题标题】:Libgit2Sharp : How to get author details from Diff.Compare?Libgit2Sharp:如何从 Diff.Compare 获取作者详细信息?
【发布时间】:2017-01-05 05:15:25
【问题描述】:

我的要求是比较两个标签并获取有关更改内容的详细信息。为此,我使用以下代码。该代码有效,我能够检索添加、删除和修改的文件。但是,我还需要获取对文件进行更新的作者。怎么获得作者? “TreeChanges”对象没有作者属性。

            Tag t1 = tags.Where(t => t.FriendlyName.Equals("10.0.0.01")).First();
            Tree commitTree1 = repo.Lookup<Commit>(t1.PeeledTarget.Id.Sha).Tree;

            Tag t2 = tags.Where(t => t.FriendlyName.Equals("10.0.0.99")).Firs();
            Tree commitTree2 = repo.Lookup<Commit>(t2.PeeledTarget.Id.Sha).Tree;

            var patch = repo.Diff.Compare<TreeChanges>(commitTree1, commitTree2);

谢谢!

【问题讨论】:

    标签: c# git libgit2sharp


    【解决方案1】:

    “TreeChanges”对象没有作者属性。

    这不是因为“修改”文件可能在两个标签之间被一个作者修改,然后被删除,然后被另一位作者再次添加,然后被第三人修改。

    您需要列出这两个标签之间的所有提交,检查文件是否是该提交的一部分并获取该提交的作者 (commit.Author),以便找到所有接触过该文件的作者。
    见:

    【讨论】:

    • 感谢您的回复。但是,当我尝试创建 CommitFilter 对象时,我收到一个编译时错误,提示 CommitFilter 不包含“Since”和“Until”的定义
    • @TonyP 是的,它们已被github.com/libgit2/libgit2sharp/pull/1069 和github.com/libgit2/libgit2sharp/commit/… 删除:将IncludeReachableFrom 和ExcludeReachableFrom 与ligbit2sharp v0.22 或更高版本一起使用。
    • 谢谢!可以使用 IncludeReachableFrom 和 ExcludeReachableFrom
    • @TonyP 太棒了!你能用你最终得到的代码编辑这个答案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2014-10-15
    • 2023-03-21
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    相关资源
    最近更新 更多