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