纯C语言实现的 Git 核心开发包, libgit2 v0.23.0 发布
libgit2 是一个可移植、纯C语言实现的 Git 核心开发包,你可以使用它来编写自定义的 Git 应用。
libgit2已被广泛应用在许多应用程序上,包括GitHub网站,还被应用在Plastic SCM和强大的微软Visual Studio工具箱。
libgit2 v0.23.0 发布,该版本是 v0.23 系列的最终版,相比 v0.22 增加了许多新特性并修复了许多 bug。部分更新内容如下:Changes or improvements
-
Patience and minimal diff drivers can now be used for merges.
-
Merges can now ignore whitespace changes.
-
Updated binary identification in CRLF filtering to avoid false positives in
UTF-8 files. -
Rename and copy detection is enabled for small files.
-
Checkout can now handle an initial checkout of a repository, making
GIT_CHECKOUT_SAFE_CREATE
unnecessary for users of clone. -
The signature parameter in the ref-modifying functions has been
removed. Usegit_repository_set_ident()
and
git_repository_ident()
to override the signature to be used. -
The local transport now auto-scales the number of threads to use
when creating the packfile instead of sticking to one. -
Reference renaming now uses the right id for the old value.
-
The annotated version of branch creation, HEAD detaching and reset
allow for specifying the expression from the user to be put into the
reflog. -
git_rebase_commit
now returnsGIT_EUNMERGED
when you attempt to
commit with unstaged changes. -
On Mac OS X, we now use SecureTransport to provide the cryptographic
support for HTTPS connections insead of OpenSSL. -
Checkout can now accept an index for the baseline computations via the
baseline_index
member. -
The configuration for fetching is no longer stored inside the
git_remote
struct but has been moved to agit_fetch_options
. The
remote functions now take these options or the callbacks instead of
setting them beforehand. -
git_submodule
instances are no longer cached or shared across
lookup. Each submodule represents the configuration at the time of
loading. -
The index now uses diffs for
add_all()
andupdate_all()
which
gives it a speed boost and closer semantics to git. -
The ssh transport now reports the stderr output from the server as
the error message, which allows you to get the "repository not
found" messages. -
git_index_conflict_add()
will remove staged entries that exist for
conflicted paths. -
The flags for a
git_diff_file
will now have theGIT_DIFF_FLAG_EXISTS
bit set when a file exists on that side of the diff. This is useful
for understanding whether a side of the diff exists in the presence of
a conflict. -
The constructor for a write-stream into the odb now takes
git_off_t
instead ofsize_t
for the size of the blob, which
allows putting large files into the odb on 32-bit systems. -
The remote's push and pull URLs now honor the url.$URL.insteadOf
configuration. This allows modifying URL prefixes to a custom
value via gitconfig. -
git_diff_foreach
,git_diff_blobs
,git_diff_blob_to_buffer
,
andgit_diff_buffers
now accept a new binary callback of type
git_diff_binary_cb
that includes the binary diff information. -
The race condition mitigations described in
racy-git.txt
have been
implemented. -
If libcurl is installed, we will use it to connect to HTTP(S)
servers.
更多内容请查看:这里。
该版本下载地址:Source code (zip)