e-butik/gittern

一个用纯PHP编写的Git库。为PHP的耳朵带来Git的音乐。

dev-make-list-keys-aware 2013-04-03 15:01 UTC

This package is not auto-updated.

Last update: 2024-09-14 13:23:14 UTC


README

为PHP的耳朵带来Git的音乐。 构建状态

正在开发中的第0.8版(因为从0.1或1.0开始是方形人的做法)

文档可在 Read the Docs 上找到。

什么是Gittern?

Gittern是一个PHP库,用于从和向Git仓库读写。它不依赖于git二进制文件,直接访问仓库文件。

Gittern提供了一些与Git仓库交互的接口。首先,有一个低级接口,您可以手动创建blob、tree和commit。然而,这可能会非常快地变得繁琐。因此,还包括了两个不同的Gaufrette适配器。

第一个,GitternCommitishReadOnlyAdapter基本上就像它听起来一样。这是一个适配器,您向其中提供commitish,并可以从中读取与该commit关联的文件。

第二个,GitternIndexAdapter允许您从和向Git索引读写。Git索引是您为commit准备新更改的暂存区域。然后,当您准备好时,从索引创建commit相当简单。只需从索引中获取tree,并使用它来创建您的commit。

除了所有这些功能之外,Gittern还考虑了可扩展性。Gittern如何从磁盘上的仓库读取数据是通过适配器模式干净地分离的,因此,如果您有这样的需要,您可以轻松实现例如能够维护多个索引的适配器,或者在MongoDB或Redis(实际上,如果您不关心从git二进制文件访问仓库,您可以直接将其用作快速、分布式的后端)中进行Git对象缓存。

这一切的背后是谁?

E-butik.se,瑞典领先的电子商务平台提供商之一。访问我们的 开发者博客

如何安装Gittern?

使用 Composer。有关更详细的说明,请参阅文档。

API有多稳定?

不是很稳定。我们几乎随时都在重构API。然而,Gaufrette适配器将与Gaufrette主分支保持兼容,因此如果您主要使用Gaufrette适配器,您将不会遇到很多API中断。

有点儿问题

计划中的功能

有几个计划中的功能,但没有包含在版本0.8中。

  • 通过依赖git二进制的子类来子类化Repository,以允许一些高级命令
  • 打包文件创建(目前打包文件只能读取)
  • 支持解析轻量级标签
  • 支持读取注解标签
  • 支持链接树条目类型
  • 支持提交树条目类型(即子模块)
  • 将Gittern\Entity\GitObject\User类转换为接口
  • 支持所有类型的Git树状结构
  • 支持在移动分支头时更新reflog