libgit2 0.18.0beta0

libgit2 0.18.0beta0

测试已测试
Lang语言 CC
许可证 自定义
Released最新发布2014年12月

Ben ChatelainBen Chatelain 维护。



libgit2 0.18.0beta0

  • 作者:
  • 查看 AUTHORS 文件

libgit2 - Git 可链接库

libgit2 是 Git 核心方法的便携式、纯 C 实现,作为可重入的链接库,具有可靠的 API,允许您在任何拥有绑定器的语言中编写具有原生速度的自定义 Git 应用程序。

libgit2 在一个非常宽松的许可证(GPLv2 与特殊链接异常)下授权。这意味着您可以将其(未修改)链接到任何类型的软件,而无需发布其源代码。

能做什么

libgit2 已非常适用。

  • SHA 转换、格式化和缩短
  • 抽象的 ODB 后端系统
  • 提交、标签、树和 blob 解析、编辑和写入
  • 树遍历
  • 修订行走
  • 索引文件(暂存区域)操作
  • 引用管理(包括打包引用)
  • 配置文件管理
  • 高级仓库管理
  • 线程安全和可重入性
  • 描述性和详细的错误消息
  • ……及更多(超过 175 个不同的 API 调用)

构建 libgit2 - 使用 CMake

libgit2 在大多数平台上可以干净地编译,无需任何外部依赖项。在类 Unix 系统(如 Linux、*BSD 和 Mac OS X)上,libgit2 预期 pthreads 可用;它们应该已在所有系统上默认安装。在 Windows 上,libgit2 使用原生的 Windows API 进行线程处理。

libgit2 库在所有平台上都使用 CMake 2.6+(http://www.cmake.org)构建。

在大多数系统上,您可以使用以下命令构建库:

$ mkdir build && cd build
$ cmake ..
$ cmake --build .

或者您可以将 CMake 图形界面工具指向 CMakeLists.txt 文件,生成特定平台的构建项目或 IDE 工作空间。

要安装库,您可以通过设置安装前缀来指定:

$ cmake .. -DCMAKE_INSTALL_PREFIX=/install/prefix
$ cmake --build . --target install

有关更高级的使用或有关 CMake 的问题,请阅读 http://www.cmake.org/Wiki/CMake_FAQ

以下 CMake 变量已声明

  • BIN_INSTALL_DIR:安装二进制文件的目录。
  • LIB_INSTALL_DIR:安装库文件的目录。
  • INCLUDE_INSTALL_DIR:安装头文件目录。
  • BUILD_SHARED_LIBS:将libgit2构建为共享库(默认为ON)
  • BUILD_CLAR:构建基于Clar的测试套件(默认为ON)
  • THREADSAFE:在libgit2中启用线程支持(默认为OFF)
  • STDCALL:将libgit2构建为stdcall。对于cdecl禁用(Windows;默认为ON)

编译器和连接器选项

CMake 允许您指定一些变量来控制编译器和连接器的行为。这些标志很少使用,但可以在64位到32位交叉编译中非常有用。

  • CMAKE_C_FLAGS:设置自己的编译器标志
  • CMAKE_FIND_ROOT_PATH:覆盖库搜索路径
  • ZLIB_LIBRARYOPENSSL_SSL_LIBRARYOPENSSL_CRYPTO_LIBRARY:告诉CMake查找这些特定库的位置

MacOS X

如果您想为Mac OS X构建通用二进制文件,如果您在配置时使用-DCMAKE_OSX_ARCHITECTURES="i386;x86_64",CMake会为您设置一切。

Windows

您需要从Visual Studio命令提示符运行CMake命令,而不是常规或Windows SDK命令提示符。使用-G "Visual Studio X"选项选择您版本的正确生成器。

有关更详细的说明,请参阅wiki

语言绑定

以下是目前可用的libgit2绑定

如果您开始使用另一个语言绑定与libgit2库,请让我们知道,以便我们可以将其添加到列表中。

如何贡献?

在GitHub上Fork libgit2/libgit2,添加您的改进,将其推送到您分叉的以主题命名的分支,发送pull request。如果您更改了API或做出了其他重大更改,请在docs/rel-notes/目录下的一个以下一个版本命名的文件中进行说明。

您还可以在GitHub上的libgit2项目下提交错误报告或功能请求,或者通过发送电子邮件到

[email protected]

许可证

libgit2依据GPL2 具有链接豁免权。这意味着您可以使用任何程序链接到该库,无论是商业程序、开源程序还是其他类型。然而,您不能修改libgit2并在不提供源代码的情况下分发它。

查看COPYING文件获取完整的许可证文本。