2013-02-05 53 views
0

我一直在琢磨,並通過我可以找到的小維基信息閱讀,並通過測試,我認爲可能是相關的,但我有問題來了有一些工作的解決方案。需要一點幫助在遠程存儲庫上執行操作

大多數情況下,我正在尋找一種方式來列出在工作庫/本地提交之前已提交到服務器的提交。我試過使用Fetch和FetchHeads,但是通過Network類的所有文檔看起來並沒有產生任何我能理解的東西,我猜。理想情況下,我會希望看到這樣的:

IQueriableCommitLog Repository.Network.GetCommitsAhead 

OR

IQueriableCommitLog Repository.Remote.GetCommitsAhead 

然後,只需使用效果,就像您在:

IQueriableCommitLog Repository.Commits 

而且,也許是方法如用於遠程提交的Commit.UpdateTo()。

我對於我所尋找的東西太遠了嗎?目前是否有可能執行此類操作?它是否支持libgit2?

回答

1

大多數情況下,我正在尋找一種方法來列出在工作庫/本地提交之前已推送到服務器的提交。

A Branch是本地或遠程的。當地Branch es正在追蹤其他人揭露TrackedBranch屬性。

考慮本地分支有沒有空TrackedBranch物業已經在這個地方分支執行,而不是從一個跟蹤已知

  • 提交。

repo.Commits.QueryBy(new Filter { Since = branch.Tip, Until = branch.TrackedBranch });

  • 承諾中存在的跟蹤分支,而不是從當地一個

repo.Commits.QueryBy(new Filter { Since = TrackedBranch, Until = Tip })

+0

知道我是正確的假設,第一個代碼塊對於服務器未知的本地提交,以及服務器已知的第二塊,但工作副本不知道的第二塊? –

+0

是的。但是,請記住,這將與本地存儲庫知道的遠程服務器狀態有關。如果您需要更新的信息,請確保首先發布「Fetch()」。 – nulltoken

+0

感謝您的幫助,但TrackedBranch總是報告爲空。 '回購=新的存儲庫(Directory.GetCurrentDirectory());'' repo.Fetch( 「原點」);' '分支= repo.Head;' –