2016-09-14 58 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

對不起,我從未擅長閱讀這些測試並將它們轉換爲正確的代碼。當然,你不能只用我的問題特定的代碼示例來幫助我? :) –