Java implementation of Git 4.1.0

Primary tabs

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 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
Release Date: 
Monday, September 28, 2015
Release Type: 
Minor release