5.11.0
Features
Protocols
- 553083 Client-side protocol V2 support for fetching
- 563145 Enable git wire protocol version 2 on server side per default
- 541327 TransportHttp: support preemptive Basic authentication
- TransportHttp: make the connection factory configurable
- Migrate to Apache MINA sshd 2.6.0. Re-enable DSA, DSA_CERT, and RSA_CERT public key authentication.
- [pgm] Use Apache sshd by default
GPG signing
- 386908 TagCommand: support signing annotated tags
- 386908 Enable GpgSigner to also sign tags
- 570501 GPG: handle extended private key format
- [GPG] Provide a factory for the BouncyCastleGpgSigner
- 547536 GPG: compute the keygrip to find a secret key
- 547751 GPG signature verification via BouncyCastle
- GPG: support git config gpg.program
Miscellaneous
- 564794 init: allow specifying the initial branch name for the new repository
- 564794 init: add config option to set default for the initial branch name
- Restore preserved packs during missing object seeks in conjunction with --preserve-old-packs GC option
- Create a PackFile class for Pack filenames
- Rename PackFile to Pack
- 571143 IgnoreNode: include path to file for invalid .gitignore patterns
- 571143 FastIgnoreRule: include bad pattern in log message
- Allow to define additional Hook classes outside JGit
- Allow dir/file conflicts in virtual base commit on recursive merge.
- 570744 LFS: make pointer parsing more robust
- [pgm] add option --timeout to clone command
- Add the "compression-level" option to all ArchiveCommand formats
Performance Improvements
- Improved method getting all refs except specific refs with seek on Reftable. Improvement of a factor of 15-20x for large Gerrit repositories!
Bug Fixes
- 571574 HTTP: cookie file stores expiration in seconds
- 570758 LFS: handle invalid pointers better
- 546580 Fail clone if initial branch doesn't exist in remote repository
- 570501 GPG: fix reading unprotected old-format secret keys
- 565874 dfs: handle short copies
- 553428 Post commit hook failure should not cause commit failure
- GitHook: use default charset for output and error streams
- Fix DateRevQueue tie breaks with more than 2 elements
- Fix FileRepository#convertToReftable which failed if no reflog existed
- IO: fix IO.readFully(InputStream, byte[], int) with non-zero offset
- reftable: add random suffix to table names
- TemporaryBuffer: fix toByteArray(limit)
- 535850 TransportHttp: shared SSLContext during fetch or push by introducing GitSession
- Tag message must not include the signature
- Protocol V2: don't log spurious ACKs in UploadPack
- 553083 Protocol V2: respect MAX_HAVES only once we got at least one ACK
- [spotbugs]: Fix potential NPE in FileSnapshot constructor
- FileSnapshot: don't try to read file attributes twice
- 569962 Fix NPE in DirCacheCheckout
- 547789 GPG user ID matching: use case-insensitive matching
- TagCommand: make -f work with lightweight tags for NO_CHANGE
- Added check for null on DirCacheEntry in checkoutEntry method
Build and Release Engineering
- Add target platform for eclipse 4.19 staging
- Bump bazel version to 4.0.0
- Require latest Maven version 3.6.3
- Update jetty to 9.4.36.v20210114
- Update com.google.gson to 2.8.6
- Update spotbugs-maven-plugin to 4.2.0
- Update eclipse-jarsigner-plugin to 1.1.7
- Update build-helper-maven-plugin to 3.2.0
- Update maven-enforcer-plugin to 3.0.0-M3
- Update maven-shade-plugin to 3.2.4
- Update spring-boot-maven-plugin to 2.4.1
- Update maven-surefire plugins to 3.0.0-M5
- Update japicmp-maven-plugin to 0.14.4
- Update spotbugs-maven-plugin to 4.1.4
- Upgrade ecj to 3.24.0
- Upgrade wagon-ssh to 3.4.2
- Update maven-site-plugin to 3.9.1
- Fix stamping to produce stable file timestamps
- Fix errorprone configuration for maven-compiler-plugin with javac
- 570451 Correct the minimum required version of Apache httpclient
- pgm: add missing dependency to org.apache.commons.logging
- Remove reftree and ketch. This was experimental code and never used in production.
- Split out loose object handling from ObjectDirectory
- Split out packfile handling from ObjectDirectory
- TagCommand: propagate NO_CHANGE information
- Move reachability checker generation into the ObjectReader object
- Fix SeparateClassloaderTestRunner on Java 9 or higher
The project leadership certifies that the APIs in this release are "Eclipse Quality".