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.7.0

Security Fixes

Features

  • 442284 Merge: Add diff3 style merge conflict formatter.
  • 581875 Handle global git config $XDG_CONFIG_HOME/git/config
  • 436127 Default for global (user) git ignore file $XDG_CONFIG_HOME/git/ignore
  •  Add support for PKCS#11 HSMs (like YubiKey PIV) for SSH authentication.
  • DFSGarbargeCollector: Write object size indices to packs
  • DfsReader: Expose an interface to announce when an index is loaded
  • Allow FollowFilter's rename callback to identify the commit that generates a diffEntry on a rename Event.
  • PackReverseIndexV1: add support for parsing reverse index version 1 files
  • PackReverseIndex: open file if present otherwise compute
  • PackReverseIndex: verify checksums
  • Gc#writePack: implement writing reverse index file to disk
  • CommitGraphWriter: add options "commitGraph.writeChangedPaths", "commitGraph.readChangedPaths" controlling whether bloom filters are written and read.
  • CommitGraphLoader: read changed-path filters to add support for reading the BIDX and BDAT chunks of the commit graph file, as described in gitformat-commit-graph(5).
  • CommitGraphWriter: Add support for writing the BIDX and BDAT chunks of the commit graph file, as described in gitformat-commit-graph(5).
  • DfsGarbageCollector: provide commit graph stats

Performance Improvements

  • IO: use JDK convenience methods which allow certain InputStreams overriding the default implementation for performance reasons.
  • Introduce a core.packedIndexGitUseStrongRefs configuration key (default: true). Setting it to false allows soft references to be used for Pack indices. This reduces overall heap size required to run commands which access pack indices.
  • DfsGarbageCollector: put only GC commits reachable from branches and tags into the commit graph to reduce size of commit graphs
  • RevCommitCG: Read changed-path-filters directly from commit graph to save memory
  • Pack: open reverse index from file if present instead of recomputing it
  • CommitGraphWriter: reuse changed path filters
  • Teach RevWalk, TreeRevFilter, PathFilter, and FollowFilter to use changed path filters, whenever available, to speed revision walks by skipping commits that fail the changed path filter.
  • DfsInserter: populate full size on object insertion. Then we don't need to re-read it from the pack at indexing time.
  • DfsReader/PackFile: Implement isNotLargerThan using the obj size idx to avoid reading the size of a blob from disk using the object size idx if available.

Refactorings

  • Move footer-line parsing methods from RevCommit to FooterLine
  • PackReverseIndex: use static builder instead of constructor

Bug Fixes

  • GC: Remove handling of extra pack for RefTree which was removed earlier
  • DfsPackParser: Create object indices if config says so
  • 582039 Express the explicit intention of creating bitmaps in GC to allow the GC.repack() phase to explicitly generate bitmaps only for the heads packfile and not for the others.
  • 581532 GC: prune all packfiles after the loosen phase. This prevents a series of exceptions previously thrown when loosening the packfiles.
  • Fix S3Repository getSize to handle larger object sizes
  • Mark COMMIT_GENERATION_UNKOWN, COMMIT_GENERATION_NOT_COMPUTED constants final
  • 582044 Revert "RefDirectory: Throw exception if compare-and-swap of packed ref list fails"

Build an Release Engineering

Update dependencies

  • bouncycastle to 1.76
  • byte-buddy to 1.14.7
  • commons-codec to 1.16.0
  • jmh to 1.37
  • mockito to 5.5.0
  • Orbit to orbit-aggregation/release/4.29.0

Update build environment

  • bazel to 6.2.0
  • build-helper-maven-plugin to 3.4.0
  • eclipse-jarsigner-plugin to 1.4.2
  • maven-compiler-plugin to 3.11.0
  • maven-enforcer-plugin to 3.3.0
  • maven-project-info-reports-plugin to 3.4.3
  • maven-source-plugin to 3.3.0
  • maven-surefire-report-plugin to 3.0.0
  • org.eclipse.jdt:ecj to 3.34.0
  • spring-boot-maven-plugin to 2.7.13
  • tycho to 4.0.2

Other changes

  • Add target platform for Eclipse 2023-09 (4.29)
  • Use release p2 repo for Eclipse 2023-06 (4.28)
  • Fix all javadoc warnings, stop ignoring doclint 'missing' category and fail the build on javadoc warnings for public and protected classes and class members.
  • Bazel: Fix remote build execution for Java 17
  • Remove the cbi-snapshots Maven repository
Release Date
Release Type
Minor release
This release is part of Eclipse IDE 2023-09