純C語言實現的 Git 核心開發包, libgit2 v0.23.0 發布

jopen 9年前發布 | 9K 次閱讀 libgit2

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.

    </li>

  • Merges can now ignore whitespace changes.

    </li>

  • Updated binary identification in CRLF filtering to avoid false positives in
    UTF-8 files.

    </li>

  • Rename and copy detection is enabled for small files.

    </li>

  • Checkout can now handle an initial checkout of a repository, making
    GIT_CHECKOUT_SAFE_CREATE unnecessary for users of clone.

    </li>

  • 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.

    </li>

  • The local transport now auto-scales the number of threads to use
    when creating the packfile instead of sticking to one.

    </li>

  • Reference renaming now uses the right id for the old value.

    </li>

  • The annotated version of branch creation, HEAD detaching and reset
    allow for specifying the expression from the user to be put into the
    reflog.

    </li>

  • git_rebase_commit now returns GIT_EUNMERGED when you attempt to
    commit with unstaged changes.

    </li>

  • On Mac OS X, we now use SecureTransport to provide the cryptographic
    support for HTTPS connections insead of OpenSSL.

    </li>

  • Checkout can now accept an index for the baseline computations via the
    baseline_index member.

    </li>

  • 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.

    </li>

  • git_submodule instances are no longer cached or shared across
    lookup. Each submodule represents the configuration at the time of
    loading.

    </li>

  • The index now uses diffs for add_all() and update_all() which
    gives it a speed boost and closer semantics to git.

    </li>

  • 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.

    </li>

  • git_index_conflict_add() will remove staged entries that exist for
    conflicted paths.

    </li>

  • 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.

    </li>

  • 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.

    </li>

  • 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.

    </li>

  • 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.

    </li>

  • The race condition mitigations described in racy-git.txt have been
    implemented.

    </li>

  • If libcurl is installed, we will use it to connect to HTTP(S)
    servers.

    </li> </ul>

    更多內容請查看:這里

    該版本下載地址:Source code (zip)


     本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!