发布于 2016-03-04 23:47:55 | 173 次阅读 | 评论: 0 | 来源: 网友投递
libgit2 Git开发包
libgit2 是一个可移植、纯C语言实现的 Git 核心开发包,你可以使用它来编写自定义的 Git 应用。
libgit2 v0.24.0 发布了,libgit2 是一个可移植、纯C语言实现的 Git 核心开发包,你可以使用它来编写自定义的 Git 应用。
libgit2已被广泛应用在许多应用程序上,包括GitHub网站,还被应用在Plastic SCM和强大的微软Visual Studio工具箱。
主要功能:
SHA转换、格式化和缩略词
抽象的ODB后端系统
提交、标签、树和BLOB解析、编辑、blob解析和回写
树遍历
revision walking
索引文件(临时区域)操作
引用管理(包括包引用)
配置文件管理
高级仓库管理
线程安全和可重入
错误信息描述非常详细
更多(超过175个不同的API调用)
目前,可以绑定到libgit2的语言有,并附上各个语言的绑定方法:
C++:https://projects.kde.org/projects/playground/libs/libqgit2/
Chicken Scheme:https://wiki.call-cc.org/egg/git
Haskell:https://github.com/fpco/gitlib
.NET:https://github.com/libgit2/libgit2sharp、https://github.com/txdv/libgit2net
Objective-C:https://github.com/libgit2/objective-git
Parrot Virtual Machine:https://github.com/letolabs/parrot-libgit2
Vala:https://github.com/apmasell/vapis/blob/master/libgit2.vapi
更新记录如下:
Custom filters can now be registered with wildcard attributes, for
example filter=*
. Consumers should examine the attributes parameter
of the check
function for details.
Symlinks are now followed when locking a file, which can be
necessary when multiple worktrees share a base repository.
You can now set your own user-agent to be sent for HTTP requests by
using the GIT_OPT_SET_USER_AGENT
with git_libgit2_opts()
.
You can set custom HTTP header fields to be sent along with requests
by passing them in the fetch and push options.
Tree objects are now assumed to be sorted. If a tree is not
correctly formed, it will give bad results. This is the git approach
and cuts a significant amount of time when reading the trees.
Filter registration is now protected against concurrent
registration.
Filenames which are not valid on Windows in an index no longer cause
to fail to parse it on that OS.
Rebases can now be performed purely in-memory, without touching the
repository's workdir.
When adding objects to the index, or when creating new tree or commit
objects, the inputs are validated to ensure that the dependent objects
exist and are of the correct type. This object validation can be
disabled with the GIT_OPT_ENABLE_STRICT_OBJECT_CREATION option.
The WinHTTP transport's handling of bad credentials now behaves like
the others, asking for credentials again.
下载地址:https://github.com/libgit2/libgit2/archive/master.zip
详情请看:https://github.com/libgit2/libgit2