Eclipse JGit: Java implementation of Git 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
Release Date
Release Type
Minor release
This release is part of Eclipse IDE 2021-03