Git 2.48 的亮点

  • Git 2.48 Release: With features and bug fixes from over 93 contributors (35 new), including various improvements.

    • Faster SHA-1s: Can use a faster, non-collision-detecting SHA-1 for trailing checksums without compromising security, resulting in a 10-13% performance improvement in serving fetches/clones. Built with make OPENSSL_SHA1_UNSAFE=1 or other _UNSAFE variants.
    • Bringing --remerge-diff to range-diff: range-diff now accepts --remerge-diff, allowing review of changes in merge commits when rebasing. Also fixes a longstanding bug with --remerge-diff for use with options changing commit traversal.
    • Memory leak-free tests: Git can now run its test suite successfully with leak checking enabled, representing significant progress toward converting internals into a callable library.
    • Introducing Meson: Git now has support for Meson as an alternative build system, offering advantages like easier use and extensive IDE support. Can run meson setup build && ninja -C build on a fresh copy of Git 2.48 or newer.
  • Deprecation List: The Git project began collecting now-deprecated features in [Documentation/BreakingChanges.txt] to discuss and collect anticipated deprecations.
  • Performance Improvements:

    • for-each-ref: Can take advantage of optimizations when outputting references in sorted order, running significantly faster.
    • Reftable subsystem: Updated to avoid explicit dependencies, handle memory allocation failures gracefully, and reuse reference iterators for faster reference creation and lower memory usage.
  • Remote Branch Updates: When cloning from a remote repository, if the remote has a default branch and refs/remotes/origin/HEAD is missing locally, a fetch will update it. Can set remote.origin.followRemoteHead configuration to warn or always for more control.
  • Partial Clones: Fixed an infinite loop and avoided promisor to non-promisor references that could break the repository after git gc.
  • Full Release Details: For more changes, check the release notes for 2.48 or any previous version in the Git repository.
  • Written By: Taylor Blau, a Staff Software Engineer at GitHub working on Git.
阅读 6
0 条评论