Eclipse JGit: Java implementation of Git 6.8.0

Features

  • Improve parsing of commit message trailers to allow multiline trailers
  • BitmapIndex: Add interface to track bitmaps found (or not) for monitoring
  • CommitGraphWriter: Add progress monitor to bloom filter computation during gc
  • CommitGraphWriter: Unnest reporting of generation-number progress
  • 582292 Add support for git config option repack.packKeptObjects
  • Use ShutdownHook to gracefully handle JVM shutdown in all classes which already registered their own shutdown hook
  • 582379 Add ShutdownHook to cleanup FileLocks on graceful JVM shutdown to avoid stale lock files if the JVM is terminated gracefully.
  • Unregister ShutdownHook when GC#PidLock is closed
  • 342790 RevertCommand: support for inserting a Gerrit change ID

Performance Improvements

  • 578550 Optimize RefDirectory.getRefsByPrefix(String...) by matching all ref prefixes in one pass over all refs.
  • UploadPack: use want-refs as advertised set in fetch v2. Treat wanted-refs like a ref-prefix when calculating the advertised refs on v2 fetch command. Less refs means a faster setup and less walk for the reachability checks.

Bug Fixes

  • 582538 Fix branch ref existence check. When a tag with the same name as the branch exists, branch creation should work too.
  • BasePackFetchConnection: Avoid full clone with useNegotiationTip
  • 451508 FileBasedConfig: in-process synchronization for load() and save() to prevent deleting content of the config on Windows.
  • 451508 FileUtils.rename(): better retry handling when atomic move fails on Windows
  • 451508 FileBasedConfig: ensure correct snapshot if no config file exists
  • 451508 DeleteBranchCommand: update config only at the end if multiple branches are deleted
  • 582526 RebaseCommand: return correct status on stash apply conflicts. Ensure that also the fast-forward cases return status STASH_APPLY_CONFLICTS when applying the stash produces conflicts.
  • 582292, 582455 Do not exclude objects in locked packs from bitmap processing. Introduce the '--pack-kept-objects' option in GC for including the objects contained in the locked packfiles during the repack phase, to avoid accidental pruning during GC.
  • 582394 OSGi: move plugin localization to subdirectory to avoid filename clashes in non-OSGi environment.
  • DfsPackFile: Record index load event only in one place



Build and Release Engineering

Git repositories were migrated to GerritHub including all review data.

See the blog 14 Years of JGit/EGit Code Reviews migrated to GerritHub

Update dependencies

  • bouncycastle to 1.77
  • bytebuddy to 1.14.9
  • jetty to 10.0.18
  • org.apache.ant to 1.10.14
  • org.apache.commons:commons-compress to 1.25.0
  • org.apache.sshd to 2.11.0
  • mockito to 5.7.0

Update build

  • orbit to orbit-aggregation/2023-12
  • bazel to 6.3.2
  • org.eclipse.jdt:ecj to 3.35.0

Other improvements

  • Add target platform for Eclipse 4.30 (2023-12)
  • Use net.i2p.crypto.eddsa 0.3.0 from new Orbit build
  • Update repository URLs in CONTRIBUTING.md after the move to eclipse.gerrithub.io.
  • Update bazlets to f9c119e45
  • Enable Maven reproducible builds using timestamp of last commit.
  • Generate SBOMs using cyclonedx maven plugin
Release Date
Release Type
Minor release
This release is part of Eclipse IDE 2023-12