Haskell库用于操作git存储库。

25

我正在用Haskell编写一个应用程序,需要对Git存储库执行基本操作(如添加、日志记录、推送、拉取、获取差异等)。

除了从Haskell调用shell命令外,是否有其他选择?我在Hackage上没有找到任何好的线索。

2个回答

28

有许多很好的库可以在Hackage上与Git进行交互:

  • git-object - 用于解析Git对象的解析器和类型
  • darcs-fastconvert - 用于从Git导入的工具
  • ght - 简单的Git交互
  • libgit - 简单的Git包装器
  • hlibgit2 - libgit2的完整绑定
  • gitit - 基于Git的Wiki
  • filestore - 面向DVCS(如git、darcs等)的高级基于文件的接口。

您应该能够使用这些软件包开始工作。


3
我喜欢这个答案与 Hal 的回答之间的对比。 :) - Rotsor
7
Don 是 Haskell 社区的 Jon Skeet。 - fuz

4
比hlibgit2更好的是gitlib,它是一个高级别的类型包装器集合,围绕hlibgit2的功能设计,旨在懒惰、高效,并适合Haskell思维方式。

“git fetch”被特别提到 - 我似乎在Haskell的gitlib(包装libgit2)中找不到任何支持。它受支持吗? - Peaker
嗨Peaker,通过将对象从一个存储库复制到另一个存储库来支持提取。请参见Push模块。 - John Wiegley
2
似乎gitlib文档有问题:像openOrCreateRepositoryopenRepositorycreateRepository这样的函数在文档中提到,但是找不到它们。 - Nawaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接