Eclipse JGit: Java implementation of Git 6.10.0

6.10.0

Description

New Features

  • Allow applying a patch with conflicts
  • DfsPackFile: get commitGraph.readChangePaths from repo config
  • [ssh] Implement the "Ciphers" SSH config

Other Improvements

  • PackIndex: Make it an interface
  • PackIndex: Make iterator static (pass object count in ctor)
  • PackIndex: move checksum to the subclasses
  • PackIndex: Make #getOffset protected to allow out-of-package subclasses
  • PackBitmapIndexBuilder.StoredEntry: add getter for objectId
  • PackBitmapIndexBuilder: make StoredEntry constructor public
  • PackBitmapIndexBuilder: allow repeated call of getCompressedBitmaps()
  • DfsPackFile: Make the loader classes used to construct bitmaps public.
  • DfsPackFile: make public the constructor with bitmap loader
  • PackWriter: writeBitmapIndex takes bitmap index writer
  • PackBitmapIndex: convert from class to interface
  • PackBitmapIndex: hide packChecksum behind getter
  • PathFilterGroup: implement getPathsBestEffort()
  • CommitGraphLoader: receive readChangedPaths as parameter
  • DfsBlockCache: move cache table specific implementations to a new class

Performance improvements

  • Cache refreshed loose ref dirs in SnapshottingRefDirectory

Bug fixes

  • [gpg] Fix finding public keys from pubring.gpg
  • Check executable bit of file by reading it from the file system instead of checking if Java can execute it.
  • egit-16 FS_POSIX.runInShell(): on MacOS use a login shell
  • jgit-14 ResolveMerger: Fix issue with binary modify-modify conflicts
  • jgit-27 [gpg] Fix reading ed25519 GPG keys
  • jgit-34 [diffmergetool] Fix running command on Cygwin
  • jgit-36 CleanupService: preload JGitText if not running in OSGi
  • jgit-36 ShutdownHook: run on bundle deactivation if in OSGi
  • jgit-38 MergeAlgorithm: Fix diff3 conflict hunk computation
  • jgit-53 sshd: fix IdentiesOnly if SSH agent is enabled and has keys
  • TreeRevFilter: correct changedPathFilter usage for multi-paths inclusion

Build and Release Engineering

Update build dependencies

  • build-helper-maven-plugin to 3.6.0
  • cyclonedx-maven-plugin to 2.8.0
  • git-commit-id-maven-plugin to 8.0.2
  • groovy to 4.0.21
  • jacoco-maven-plugin to 0.8.12
  • japicmp-maven-plugin to 0.21.2
  • maven-artifact-plugin to 3.5.1
  • maven-compiler-plugin to 3.13.0
  • maven-deploy-plugin to 3.1.2
  • maven-install-plugin to 3.1.2
  • maven-jar-plugin to 3.4.1
  • maven-pmd-plugin to 3.22.0
  • maven-shade-plugin to 3.5.3
  • maven-site-plugin to 4.0.0-M14
  • maven-source-plugin to 3.3.1
  • org.eclipse.jdt:ecj to 3.37.0
  • spotbugs-maven-plugin to 4.8.5.0
  • spring-boot-maven-plugin to 2.7.18
  • tycho to 4.0.7 and set minimum maven version to 3.9.0

Update dependencies

  • add commons-lang3 as a transitive dependency of commons-compress
  • Apache commons-codec to 1.17.0
  • Apache commons-io to 2.16.1
  • Apache commons-logging to 1.3.2
  • args4j to 2.37
  • Bouncy Castle to 1.78.1
  • com.google.code.gson:gson to 2.11.0
  • jetty to 10.0.21
  • mina-sshd to 2.12.1
  • org.apache.commons:commons-compress to 1.26.2

Update test dependencies

  • bytebuddy to 1.14.16
  • mockito to 5.12.0
  • objenesis to 3.4
  • org.assertj:assertj-core to 3.26.0

Update target platforms

  • add 4.32 target platform
  • add orbit-4.32

Bazel build

  •  add support for JDK 21
       To build with JDK 21 and run the tests locally:
         $> bazel test --config=java21 //...
       To build with JDK 21 and run the tests on RBE:
         $> bazel test --config=remote21 --remote_instance_name=$PROJECT //...
  • replace deprecated --experimental_strict_action_env option
  • update RBE docker image to Ubuntu 22.04 and JDK 17
  • update Bazel version to 7.1.1

Fix warnings

  • UploadPackHandleDeletedPackFileTest: Fix warning about using raw type
  • [errorprone] Fix pattern ModifiedButNotUsed
  • [errorprone] Fix pattern CatchAndPrintStackTrace
  • [errorprone] Fix pattern FutureReturnValueIgnored
  • [errorprone] Fix pattern BadImport
  • [errorprone] Fix pattern UseCorrectAssertInTests
  • [errorprone] Fix pattern ProtectedMembersInFinalClass
  • [errorprone] Fix pattern CatchFail
  • [errorprone] Fix pattern see UnusedVariable
  • [errorprone] Fix pattern LongLiteralLowerCaseSuffix
  • [errorprone] Fix error pattern JdkObsolete
  • [errorprone] Fix UnnecessaryParentheses errors

Tests

  • Add more tests on rewriting parents in a RevWalk
  • DfsGarbageCollectorTest: add test for bitmap index creation

Documentation

  • Add pull request template discouraging usage of pull requests
  • Update CONTRIBUTING.md to point to GitHub issues
     
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 2024-06