Git 核心开发包 libgit2 v0.25.0 发布了。libgit2 是一个可移植、纯 C 语言实现的 Git 核心开发包,你可以使用它来编写自定义的 Git 应用。这是 v0.25 系列的第一个版本,代号“Rutschgefahr” ,更新日志如下:
变更或改进:
-
使用
git_repository_discover
和git_repository_open_ext
修复存储库发现,以匹配 git 在当前目录下的 ceiling 目录的处理。当它的搜索上升到父目录时,git 只检查 ceiling 目录。与起始目录匹配的 ceiling 目录不会阻止 git 在起始目录或父目录中查找存储库。 -
在存在包含分支的破坏全局配置的情况下,删除远程数据库时不会失败
-
支持读写 Git 索引 v4 文件
-
提高 revwalk 的性能,使我们更接近 git 的代码.
-
引用型数据库改进了对并发的支持,并在由于锁定而无法执行操作时返回
GIT_ELOCKED
-
现在按照 git 的更改默认激活纳秒分辨率
-
限制让 OpenSSL 默认使用的密码集
-
用户现在可以通过
.gitattributes
注册自己的合并驱动程序以使用。这个库还获得了对 union merge 驱动程序的内置支持。 -
创建引用的默认值现在验证对象是否存在
-
添加
git_proxy_options
,由于用户使用不同的网络实现,应让调用者指定代理设置,而不是依赖环境变量。
移除的 API:
-
git_blob_create_fromchunks()
已被移除, 有利于git_blob_create_fromstream()
Breaking API changes:
-
git_packbuilder_object_count
andgit_packbuilder_written
now return asize_t
instead of auint32_t
for more thorough compatibility with the rest of the library. -
git_packbuiler_progress
now provides explicitly sizeduint32_t
values instead ofunsigned int
. -
git_diff_file
now includes anid_abbrev
field that reflects the number of nibbles set in theid
field. -
git_odb_backend
now has afreshen
function pointer. This optional function pointer is similar to theexists
function, but it will update a last-used marker. For filesystem-based object databases, this updates the timestamp of the file containing the object, to indicate "freshness".If this isNULL
, then it will not be called and theexists
functionwill be used instead. -
git_remote_connect()
now accepts proxy options.
下载: