7.7.0
Features and Improvements
- ReceivePack: Add option to retain PackParser's object IDs
- jgit-256 PullResult: Improve toString by implementing for children.
- TreeWalkConnectivityChecker: Support non-commit objects in refs
- [ssh] Reject host certificates if the certified key is revoked
- Instrument ReceivePack to track time spent in pre-receive hooks
- Add timing metrics to ReceivedPackStatistics
Improvements for multi pack index support
- DfsPackCompactor: add a pre-commit hook to plug midx calculation
- MidxPackList: Add a builder to edit the pack list
- MidxWriter: Write to tmp files and use atomic rename to commit
- PackDirectory: Integrate Multi-Pack Index (MIDX) support
- PackMidx: A Pack subclass that uses midx
- MultiPackIndex: write midx bitmaps from cli tool
- MidxWriter: write bitmaps with the midx
- MultiPackIndexWriter: Encode checksum in base64
- DfsMidxWriter: Split writing midx and its bitmaps
Performance Improvements
- pack-refs: Add fully-peeled flag
- pack-refs: Correctly define peeled trait
- pack-refs: Always add sorted trait
- Add new TreeWalkConnectivityChecker, a new TreeWalk-based connectivity checker that avoids object allocations that occur when doing graph coloring via ObjectWalks
- parse-packed-refs: Check to sort only when header is not present
Bug Fixes
- 582000 ReceivePack: reject creation of one level refs such as refs/main
- Implement SystemReader.isAndroid() instead of catching a NoClassDefFoundError in GC.getPID()
- jgit-261 TemporaryBuffer.LocalFile: use Files.newInputStream()
- jgit-252
- FetchProcess: Report lock failure when destination ref changes
- TestProtocolTest: Cover additional fetch edge cases
- Add regression test on non-forced fetch and local updates
- pack-refs: Fix buggy way of marking peeled trait
- RefDirectory#refreshPathToLooseRef: also refresh loose ref itself
- push: Report fatal server errors during pack writing
- jgit-249 Bump minimum dependency for Bouncy Castle to 1.83.0
Build and Release Engineering
Update dependencies
- bouncycastle to 1.84
- bytebuddy to 1.18.8
- commons-codec to 1.22.0
- commons-io to 2.22.0
- commons-logging to 1.3.6
- gson to 2.14.0
- Jetty to 12.1.9
- mockito to 5.23.0
- orbit: org.apache.ant to 1.10.17.v20260410-1000
- org.tukaani:xz to 1.12
- slf4j to 2.0.18
- Bazel: bump to 8.6.0 and switch to pure Bzlmod
- Add jgit-4.40 target platform for next simrel 2026-06
- Use releases p2 repo in jgit-4.39 target platform
- Update python used to deploy release to maven central to 3.14
- Update urllib3 in script for deploying releases to at least 2.7.0 to fix CVE-2026-44432
- [version.sh] Don't use the pager for the git diff command
- Update URL used to download artifacts from repo.eclipse.org
- Update version of last JGit release to 7.6.0.202603022253-r
The project leadership certifies that the APIs in this release are "Eclipse Quality".