如何确定获取的远程引用是否具有较新版本的文件?

时间:2013-03-22 15:17:21

标签: libgit2sharp

我对从 HostA 推送到远程的文件(RemoteTest.txt)进行了更改。在 HostB 上,我的状态没有最后一次推送。

现在,当我使用“git diff”进入bash时,我看到了变化。

$ git diff origin/master head
 diff --git a/RemoteTest.txt b/RemoteTest.txt
 index 40604b4..b36b5e8 100644
 --- a/RemoteTest.txt
 +++ b/RemoteTest.txt @@ -1 +1,6 @@

..等等......

我尝试使用

获取C#中的更改
IEnumerable<string> paths = new List<string>() {@"origin/master", "head"};
TreeChanges tc = repo.Diff.Compare(paths);

但是tc显示0变化。这样做的正确方法是什么?

提前致谢。

1 个答案:

答案 0 :(得分:3)

您需要比较TreeCommit引用所指向的HEAD的{​​{1}}。

如下所示:

origin/master

注意: var headTree = repo.Head.Tip.Tree; var remoteMasterTree = repo.Branches["origin/master"].Tip.Tree; TreeChanges tc = repo.Diff.Compare(remoteMasterTree, headTree); 重载接受的路径的可选列表应包含比较Compare内文件的路径(或路径规范)。例如,考虑到您的用例,您可以将Trees作为第三个参数传递给方法。