2016-09-14 59 views
1

我正在使用库“libgit2sharp”来集成到我的项目中,我想要检查我的本地存储库是否与远程存储库保持同步,并提供/明智的提交。如何从远程存储库获取合并状态/最新状态?

我想知道这一点,所以如果它不是最新的,我然后做一个“拉”,并在我的程序中做一些其他的东西。

如果它是最新的,我需要知道这个。

你可以在库中做什么来实现这个功能?

回答

0

一种方法是执行git提取,如libgit2sharp git-fetch中所述。

检查提取创建的内容如TestHelpers/ExpectedFetchState.cs所做的:没有添加任何东西(没有分支/标签/提交),那么您的回购是最新的。

+0

你将如何检查在repository.Network.Fetch()中创建了什么?它似乎没有返回任何内容,并且可以分配的“RepositoryOperationCompleted”委托在完成提取后没有太多有价值的信息。 你能拿出一个代码示例吗? –

+0

@KevinJensenPetersen查看它在https://github.com/libgit2/libgit2sharp/blob/5d0cb35b89ada4b347bc4b763895ee8b263591c2/LibGit2Sharp.Tests/FetchFixture.cs中的用法:它记录了提取之前的回购*的状态,并帮助与状态进行比较* Fetch之后的回购*。 – VonC

+0

对不起,我从未擅长阅读这些测试并将它们转换为正确的代码。当然,你不能只用我的问题特定的代码示例来帮助我? :) –