New Features
- MidxPackList: Methods to find the top midx and uncovered packs
- DfsObjDatabase: read reftables from midx covered packs
- DfsGarbageCollector: handle pack lists with multipack indexes
- DfsObjDatabase: introduce multipack index
- DfsPackFileMidx: support a chain of multi-pack indexes
- DfsPackFileMidx: A packfile using the multipack index
- ConfigConstants: Add constant for multipack index
- DfsPackDescription: Add fields for multipack index
- Refine time unit parsing to throw exception on invalid values
Performance Improvements
- Do not always refresh packed-refs during ref updates. Improves latency and throughput of concurrent pushes.
- Avoid reading packed-refs concurrently if the packed-refs file has not changed since a thread has started reading and parsing it
- InterruptTimer: avoid expensive notify when begin is soon after end, improves performance of ls-remote
- InterruptTimer: avoid unneeded notify for end()
Bug Fixes
- #jgit-217 [ignore patterns] Backslash is a general escape. The backslash is used generally as an escape, not only for a few special cases. An unescaped backslash at the end of a pattern can never match.
- #jgit-22 LfsPrePushHook: recognize 201 as successful response from LFS server
- #jgit-220 [debug logging] Escape control characters other than TAB, CR, or LF
- #jgit-222 Fix signed push failing when using push options
- #jgit-15 Allow to discover bitmap on disk created after the packfile
- #jgit-216 [ssh] Fix order of keys in pubkey auth if an agent is used
- Checkout: don't fail if no commitish was given
- #jgit-182 Support unshallow request in Boundary/TopoSortGenerators
- Make UNSHALLOW a globally available static RevFlag
- #jgit-212 IndexDiffWithSymlinkTest: Java 20+ stores NFC, not NFD
- BasePackWriterTest: Fix message on pack index content assertion
- #jgit-199 Fix NPE when calling GC.prune(Set<ObjectId>)
Build and Release Engineering
Update dependencies
- bouncycastle to 1.82
- bytebuddy to 1.18.1
- com.google.code.gson:gson to 2.13.2
- commons-codec:commons-codec to 1.20.0
- commons-io:commons-io to 2.21.0
- commons-lang3 to 3.20.0
- jetty to 12.1.4
- jna to 5.18.1
- org.apache.commons:commons-lang3 to 3.19.0
- org.assertj:assertj-core to 3.27.6
- org.hamcrest to 3.0.0
- org.mockito:mockito-core to 5.20.0
- org.tukaani:xz to 1.11
- #jgit-224 slf4j to 2.0.17, requires adding Orbit dependency
- org.apache.aries.spifly.dynamic.bundle 1.3.7
- org.objectweb.asm 9.9.0
- org.objectweb.asm.commons 9.9.0
- org.objectweb.asm.util 9.9.0
- org.objectweb.asm.tree 9.9.0
- org.objectweb.asm.tree.analysis 9.9.0
Update Maven plugins and build time dependencies
- build-helper-maven-plugin to 3.6.1
- eclipse-jarsigner-plugin to 1.5.3
- gmavenplus-plugin to 4.2.1
- jacoco-maven-plugin to 0.8.14
- japicmp-maven-plugin to 0.24.2
- maven-artifact-plugin to 3.6.1
- maven-clean-plugin to 3.5.0
- maven-compiler-plugin-version to 3.14.1
- maven-dependency-plugin to 3.9.0
- maven-enforcer-plugin to 3.6.2
- maven-javadoc-plugin-version to 3.12.0
- maven-pmd-plugin to 3.27.0
- maven-shade-plugin to 3.6.1
- maven-surefire-plugin-version to 3.5.4
- org.eclipse.jdt:ecj to 3.43.0
- plexus-compiler to 2.16.0
- spotbugs-maven-plugin to 4.9.8.1
- Add GitHub Action sbom generation and upload workflow
- Document how to test a release staged in Maven Central Portal
- Migrate deployment to Maven Central to use Central Portal API
- Add jgit-4.38 target platform for Eclipse 2025-12
- [releng] Bump japicmp base version to 7.4.0.202509020913-r
- #jgit-207 Provide specific test for HPE NonStop OSS file system long file names.
- Remove resolver option from target-platform-configuration
- #jgit-202 Add missing release property to maven build