Eclipse JGit: Java implementation of Git 7.1.0

New Features

  • jgit-44 Implement SSH signing
  • Add pack-refs command to the CLI
  • Support built-in diff drivers for hunk header function names for C++, DTS, Java, Python, Rust
  • Add Union merge strategy support to allow users to specify the union strategy in their .gitattributes file
  • Add numberOfObjectsSinceBitmap to RepoStatistics
  • Add numberOfPackFilesSinceBitmap to RepoStatistics
  • DfsPackCompactor: write object size index

Other Improvements

  • PersonIdent: Use java.time instead of older Date and milliseconds, deprecate methods based on old Date API
  • GitTimeParser: Alternative time parser using the java.time API
  • SystemReader: add method to get LocalDateTime
  • DfsGarbageCollector: #setReflogExpire with Instant instead of Date
  • SystemReader: Offer methods with java.time API
  • GPG: use bouncycastle PGP secret key parsing out of the box and remove the custom S-expression parsing
  • ResolveMerger: Allow setting the TreeWalk AttributesNodeProvider
  • jgit-96 DfsGarbageCollector: Add setter for reflog expiration time.
  • SSH signing: don't require a session in PasswordProviderWrapper
  • SSH signing: make OpenSSH pattern matching public
  • SSH signing: prepare config
  • ssh: add a factory for KeyPasswordProvider
  • Record failing paths in recursive merge to help diagnose LOCK_FAILURE errors

Performance Improvements

  • RawText: improve performance of isCrLfText and isBinary
  • Replace custom encoder Constants#encodeASCII by JDK implementation
  • Replace custom encoder `Constants#encode` by JDK implementation

Bug Fixes

  • PackDirectory: Filter out tmp GC pack files created by git repacking
  • jgit-68 Align request policies with CGit to ensure allow-tip-sha1-in-want and/or allow-reachable-sha1-in-want are reported if uploadpack.allowAnySHA1InWant is enabled
  • jgit-110 Change default similarity score to 50(%) to match git's default
  • Pack.java: Recover more often in Pack.copyAsIs2() when it cannot find an object which previously was believed to be in its packfile
  • ResolveMerger: honor ignoreConflicts also for binary files
  • Remove unnecessary argument handler in MergeBase CLI command
  • jgit-48 AdvertisedRequestValidator: fix WantNotValidException caused by race

Build and Release Engineering

Update dependencies

  • Apache sshd to 2.14.0
  • bouncycastle to 1.79
  • bytebuddy to 1.15.10
  • commons-io:commons-io to 2.17.0
  • Jetty to 12.0.15
  • mockito to 5.14.2
  • org.apache.commons:commons-lang3 to 3.17.0
  • orbit-4.34: update junit bundle to 4.13.2.v20240929-1000

Misc

  • Add 4.34 target platform for Eclipse 2024-12
  • Use 2024-09 release repository in 4.33 target platform
     
Release Date
Release Type
Minor release
This release is part of Eclipse IDE 2024-12