Eclipse JGit: Java implementation of Git 6.4.0

New Features

  • [pgm] Add options --name-only, --name-status to diff, log, show
  • DfsBlockCache: Report IndexEventConsumer metrics for reverse indexes.
  • DfsStreamKey: Replace ForReverseIndex to separate metrics.
  • UploadPack: Receive and parse client session-id, see https://git-scm.com/docs/gitprotocol-capabilities#_session_idsession_id
  • Allow to perform PackedBatchRefUpdate without locking loose refs
  • PatchApplier routes updates through the index enabling executing patches in-memory.

Performance Improvements

  • PackExt: Add a reverse index extension. Add a reverse index extension that matches the one in cgit in preparation for adding a reverse index file while observing performance before and after.
  • 580310 Add option to allow using JDK's SHA1 implementation. When JGit is used internally and not exposed to traffic from external or untrusted users, the extra cost of the Java SHA1 implementation can be avoided, falling back to the native MessageDigest implementation in JCE.
  • PushCommand: allow users to disable use of bitmaps for push by adding PushCommand#setUseBitmaps(boolean)
  • Add ObjectReader#isNotLargerThan method to improve performance of partial clones
  • 580568 ObjectDirectory: avoid using File.getCanonicalPath()
  • 580651 AutoCRLFOutputStream: use BufferedOutputStream

Bug Fixes

  • 535919 Fix crashes in merge caused by NameConflictTreeWalk on rare combination of file names
  • [pgm] Ensure UploadPack is closed to fix resource leak
  • UploadPackServlet#doPost use try-with-resource to ensure up is closed
  • RawText.isBinary(): handle complete buffer correctly
  • 581049 Fix API breakage caused by extracting WorkTreeUpdater
  • 579676 Don't handle internal git errors as an HTTP error
  • Fix the path for JSchText.properties fixing TranslationBundleLoadingException
  • 580953 Ignore IllegalStateException if JVM is already shutting down
  • 549246 Fix I/O redirection for the pre-push hook
  • [sshd] Guard against numerical overflow of key length
  • CloneCommand: set HEAD also when not checking out
  • Fix ApplyCommand to always update the index to match the working tree.

Build and Release Engineering

  • Add 4.26 target platform
  • Fail build if there are license issues with dependencies
  • pgm bazel build: Add missing dependency to java EWAH

Dependency updates

  • Orbit to R20221123021534 for 2022-12
  • com.google.gson to 2.9.1.v20220915-1632
  • com.jcraft.jsch to 0.1.55.v20221112-0806
  • com.sun.jna to 5.12.1.v20221103-2317
  • com.sun.jna.platform to 5.12.1.v20221103-2317
  • net.bytebuddy.byte-buddy to 1.12.18.v20221114-2102
  • net.bytebuddy.byte-buddy-agent to 1.12.18.v20221114-2102
  • org.apache.commons.codec to 1.14.0.v20221112-0806
  • org.apache.httpcomponents:httpcore to 4.4.15
  • org.apache.httpcomponents.httpclient to 4.5.13.v20221112-0806
  • org.apache.sshd.osgi to 2.9.2.v20221117-1942
  • org.apache.sshd.sftp to 2.9.2.v20221117-1942
  • org.bouncycastle.bcpg to 1.72.0.v20221013-1810
  • org.bouncycastle.bcpkix to 1.72.0.v20221013-1810
  • org.bouncycastle.bcprov to 1.72.0.v20221013-1810
  • org.bouncycastle.bcutil to 1.72.0.v20221013-1810
  • org.mockito.mockito-core to 4.8.1.v20221103-2317
  • org.objenesis to 3.3.0.v20221103-2317
  • org.openjdk.jmh:jmh-core to 1.35
  • org.openjdk.jmh:jmh-generator-annprocess to 1.35
  • org.slf4j.api to 1.7.30.v20221112-0806
  • org.slf4j.binding.simple to 1.7.30.v20221112-0806

Build updates

  • org.apache.maven.wagon:wagon-ssh to 3.5.2
  • org.eclipse.jdt:ecj to 3.31.0
  • plexus compiler to 2.12.1
  • RBE: Update toolchain with bazel-toolchains 5.1.2 release

 



 

Release Date
Release Type
Minor release
This release is part of Eclipse IDE 2022-12