Libgit2Sharp:如何从Diff.Compare?

时间:2017-01-05 05:15:25

标签: c# git libgit2sharp

我的要求是比较两个标签并获取有关更改内容的详细信息。要做到这一点,我使用下面的代码。代码有效,我可以检索添加,删除和修改的文件。但是,我还需要获取对文件进行更新的作者。我如何得到作者? ' 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);

谢谢!

1 个答案:

答案 0 :(得分:1)

  

&#39; TreeChanges&#39;对象没有作者属性。

这不是因为&#34;修改了&#34;文件本来可以是两个标签之间,由一个作者修改,然后删除,然后由另一个作者再次添加,然后由第三个修改。

您需要列出这两个标记之间的所有提交,检查该文件是否属于该提交的一部分并获取该提交的作者(commit.Author),以便找到所有具有触摸所述文件的作者。<登记/> 参见: