2014-06-20 41 views
1

最近我看到this questionthis question答案說你可以使用git archive從遠程git存儲庫檢索單個文件。這很好,我希望能夠使用LibGit2Sharp來模擬該功能。git歸檔與LibGit2Sharp

我已經看過the source code,但我無法找到任何東西,確實存檔。有一個ArchiverBase類,但是這看起來好像只是從中派生出來的,我看不到任何來自它的東西。 ObjectDatabase有一個使用ArchiverBase參數的Archive()方法,但沒有的ArchiverBase方法真正落實。我是否需要派生ArchiverBase並自己覆蓋它的方法?我會怎麼做呢?它已經在其他一些課上完成了嗎?

總之,如何模擬git archive使用LibGit2Sharp檢索鏈接問題中描述的單個文件?

+1

在'TarArchiver'中有一個tar的具體實現,但是你不能將它指向遠程倉庫,只能指向本地倉庫。 –

+0

@EdwardThomson你可以把這個評論推薦給一個答案,以便我可以提高它的評價嗎? ; p – nulltoken

+0

@ wleles Ed的權利。此時,您無法通過存檔功能通過LibGit2Sharp執行此操作。您將不得不克隆()存儲庫。 – nulltoken

回答

1

在LibGit2Sharp,TarArchiver中碰巧會有一個具體的歸檔程序實現,它將創建本地Git存儲庫的tar歸檔文件。但是,它只會對存儲庫起作用,它不會對遠程端點起作用,所以它不適合檢索像git archive這樣的單個文件。

LibGit2Sharp不包括一種方法做你的要求。你的選擇是:

  1. 克隆庫,檢查出一個單一的文件
  2. 使用您的Git託管服務提供商(OctoKit對GitHub的或Team Foundation Server的REST的API)提供了一個API來檢索單個文件。
  3. 執行git-archive自己。