Notice: Some of the services that support the smooth operation of our websites are still in the process of being restored. As a result, certain features—such as images and committer paperwork—may be temporarily unavailable. Our team is actively working to resolve these issues and restore full functionality as soon as possible.

Thank you for your patience and understanding.

Eclipse JGit: Java implementation of Git 6.8.0

6.8.0

Description

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
API Certification

The project leadership certifies that the APIs in this release are "Eclipse Quality".

Conforms To UI/UX Guidelines
Not verified
This release is part of Eclipse IDE 2023-12