0

我正在研究 Git 的一个简单的 PHP 只读实现,并且大部分时间都在工作,但我无法弄清楚 Git 包索引文件(版本 2)的确切格式是什么。到目前为止,我发现的所有文档要么含糊不清,只专注于用 Git 本身来解释它们,要么只适用于版本 1,据我了解,版本 1 有很大不同。不能选择为 PHP 使用现有的 Git 实现(我已经尝试了一些,并且不断遇到问题)。

我基本上需要一些关于 v2 包索引文件格式的简单通用文档,没有特定于 PHP 的文档。我在哪里可以找到这个?

4

3 回答 3

2

Git 源代码中包含的文档似乎对 v1 和 v2 包文件格式有相当完整的描述。

当然,还有许多其他软件实现可以理解这种格式,包括Python 的 dulwich,当然还有C 的libgit2。如果技术文档不清楚,研究这些可能有助于您理解。

于 2012-05-06T00:45:29.293 回答
2

每个人似乎都将下面的链接 #1 作为 git packfile 格式的权威文档。我发现它非常稀疏,我不太了解它。花了很多时间挖掘,但我最终找到了链接 #2。它更全面,更容易理解。我看不出如何使用链接 #1 中的文档来实现该格式。我想我可以通过链接 #2 做到这一点。

我希望你能成功,最好有一个比目前存在的更完整的纯 PHP git 实现。

  1. http://git.kernel.org/?p=git​​/git.git;a=blob;f=Documentation/technical/pack-format.txt;h=1803e64e465fa4f8f0fe520fc0fd95d0c9def5bd;hb=HEAD

  2. http://home.cofares.net/GIT/book/7_the_packfile.html

于 2012-10-11T21:47:47.670 回答
0

Git packfile 格式不是特别容易处理 - 通过 libgit2 操作它可能比直接读取它更容易 - 查看php-libgit2

于 2012-05-06T00:48:22.490 回答