Eclipse JGit: Java implementation of Git 4.1.0 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.1.0

Description

Basic Support for Push Certificates

Push certificates are used to verify the pusher's identity when a git server receives a signed pack

  • Parsing of push certificates
  • Storage of push certificates, they are stored in a special ref "refs/meta/push-certs". The filenames in the tree are ref names followed by the special suffix "cert", and the contents are the latest push cert affecting that ref.
  • Configuration for server-side signed push verification
  • Support for push certificates in BaseReceivePack and RefUpdate

Ignore Handling

  • Allow leading/trailing spaces in ignore rules
  • Allow leading literal '#' and '!' in ignore rules if they are escaped
  • Don't trim trailing space if it is escaped with backslash

Other Enhancements

  • Add setTargetBranch in RepoCommand.
  • Add API to remove repositories from RepositoryCache
  • Add new submodule layout to SubmoduleAddCommand
  • Handle stale NFS file handles on packed-refs file
  • Add a grace period for packfiles during GC so that they are retained during GC until configured expiration age is reached

Performance Improvements

  • Use java.io.File instead of NIO to check existence of loose objects in ObjectDirectory to speed up inserting of loose objects
  • Reduce memory consumption when creating bitmaps during writing pack files

Build and Release Engineering

  • Enable annotation based NPE analysis in jgit
  • Update Jetty to 9.2.13.v20150730
  • Update org.apache.httpcomponents to 4.3