Skip to content

New and Noteworthy 4.2

Matthias Sohn edited this page Nov 30, 2023 · 1 revision

JGit

API

  • Add RemoteAddCommand
  • Add RemoteListCommand
  • Add RemoteRemoveCommand
  • Add option to allow empty commits to CommitCommand

Configuration

  • Honor some git-core fsck.* configuration settings

JGit command line

  • RepoCommand: Add setRecordRemoteBranch option to record upstream branch
  • git rev-parse: Add --verify option
  • Add remote command to JGit command line
  • Reset command support for the -- parameters
  • Improved online help

Transport

  • Support more encryption algorithms for Amazon S3 storage of git repositories
  • Support atomic push in JGit client

Git attribute support

  • Basic support for .gitattribute handling

Support git-lfs extension

  • Add support for pre-push hooks
  • Add support for smudge filters. If defined in .gitattributes call smudge filter during checkout.
  • Add support for clean filters. If defined in .gitattributes call clean filter during add to index.

These enhancements enable JGit and EGit to support the git-lfs extension [1] for versioning of large files

[1] https://git-lfs.github.com/

Performance Improvements

  • Improve performance of DirCacheBuilder
  • Speed-up creation of DirCacheEntry
  • Speed-up garbage collection by improving generation of bitmap index
  • Speed-up delta-packing
  • Improve bitmap index calculation to speed-up reachability calculations done during transport

Release Engineering and Build

  • Use japicmp [2] instead of clirr to detect API changes since clirr doesn't support Java 8
  • Use @Nullable annotations to aid detection of NPEs at design time
  • Alternative buck build [3], much faster than Maven, can't build OSGi artefacts yet

[2] https://github.com/siom79/japicmp [3] https://buckbuild.com/

Bug Fixes

19 Bugs and 3 enhancement requests were closed

Contributors

The following 28 developers worked on this release of JGit :

Andrei Pozolotin, Andrey Loskutov, Arthur Daussy, Chris Gavin, Christian Halstrick, Dave Borowitz, David Ostrovsky, David Pursehouse, Dmitry Neverov, Doug Kelly, Eryk Szymanski, Ivan Motsch, James Kolb, Jonathan Nieder, Kaloyan Raev, Laurent Delaigue, Matthias Sohn, Marc Strapetz, Mike Gilbode, Mike Williams, Rüdiger Herrmann, Sébastien Arod, Shawn Pearce, Stefan Beller, Terry Parker, Thomas Meyer, Thomas Wolf, Yuxuan 'fishy' Wang

Clone this wiki locally