使用LibGit2Sharp进行git存档

时间:2014-06-20 16:36:59

标签: git libgit2sharp

最近我看到了this questionthis question,答案说你可以使用git archive从远程git存储库中检索单个文件。这很棒,我希望能够使用LibGit2Sharp来模拟该功能。

我查看了the source code,但我找不到任何真正存档的内容。有一个ArchiverBase类,但这似乎只是意味着派生出来的,我看不到任何衍生出来的东西。 ObjectDatabase有一个使用Archive()参数的ArchiverBase方法,但没有一个ArchiverBase方法真正实现。我是否需要派生ArchiverBase并自己覆盖其方法?我该怎么办呢?它已经在其他一些课程中完成了吗?

简而言之,如何使用LibGit2Sharp模拟git archive来检索链接问题中描述的单个文件?

1 个答案:

答案 0 :(得分:1)

在LibGit2Sharp TarArchiver中确实发生了具体的归档实现,它将创建本地Git存储库的tar归档文件。但是,它只能对存储库起作用,它不能对远程端点起作用,因此它不适合检索像git archive这样的单个文件。

LibGit2Sharp不包含一种做你要求的方法。您的选择是:

  1. 克隆存储库,签出单个文件
  2. 使用Git托管服务提供商提供的API(适用于GitHub的OctoKit或适用于Team Foundation Server的REST API)来检索单个文件。
  3. 自己执行git-archive