Eclipse JGit: Java implementation of Git 4.7.0

Primary tabs

JGit Features

  • FetchCommand: Add basic support for recursing into submodules
  • Prepare JGit against SHA1 collisions
    • SHA-1: collision detection support
    • SHA1: support reset() and reuse instances
    • Switch to pure Java SHA1 for ObjectId
    • Pure Java SHA-1
  • PullCommand: Allow to set tag behavior
  • PullCommand: Add support for recursing into submodules
  • Set commit time in ZipArchiveEntry
  • Limit receive commands
  • Follow redirects in transport
  • Normalizer creating a valid branch name from a string
  • Pack refs/tags/ with refs/heads/
  • push: support per-ref force-with-lease
  • Only mark packfile invalid if exception signals permanent problem
  • Don't flag a packfile invalid if opening existing file failed. Opening a file can fail temporarily if ulimit for open file handles is exceeded.

Garbage Collection

  • GC: don't loosen doomed objects
  • Prefer smaller GC files during DFS garbage collection
  • Fix missing deltas near type boundaries
  • Reintroduce garbage pack coalescing when ttl > 0.
  • GC: delete empty directories after purging loose objects
  • Make GC cancellable when called programmatically
  • GC.prune(Set<ObjectId>): return early if objects directory is empty
  • Clean up orphan files in GC
  • GC: loosen unreferenced objects
  • GC: Add options to preserve and prune old pack files

LFS Support

  • LfsProtocolServlet: Pass HTTP Authorization header to getLargeFileRepository
  • LfsProtocolServlet#LfsRequest: Add operation type helper methods
  • Expose LFS operation strings as public constants
  • LfsProtocolServlet: Improve error on getLargeFileRepository failure
  • Add support for refusing LFS request due to invalid authorization
  • Add LfsPointerFilter TreeFilter

Build and Release Engineering

  • Upgrade error_prone_core to 2.0.18
  • Update Jetty to 9.3.17.v20170317
  • Update com.jcraft.jsch to 0.1.54
  • Update build to use Tycho 1.0.0
  • Fix hamcrest dependency in org.eclipse.jgit.ant.test
  • Update Maven plugins
  • Update Orbit to S20170306214312
  • Implement Bazel build
  • Remove buck build
Release Date: 
Wednesday, April 5, 2017
Release Type: 
Minor release