Eclipse JGit: Java implementation of Git 4.2 Release Review

Type
Release
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Release

4.2

Description

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 -- <paths> 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 [1] 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, much faster than Maven, can't build OSGi artefacts yet

[1] https://github.com/siom79/japicmp