纯C语言实现的 Git 核心开发包, libgit2 v0.23.0 发布

jopen 9年前

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. Use git_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 returns GIT_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 a git_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() and update_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 the GIT_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 of size_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,
    and git_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)