Eclipse JGit: Java implementation of Git 4.8.0 Release Review

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.

Wednesday, June 7, 2017




  • Allow DfsReader to be subclassed
  • Track read IO statistics for DfsReader
  • Support pulling remote branches to apply them on detached HEAD (Bug 485396). 
  • Reset ObjectWalker when it starts a new walk
  • Clone: add --recurse-submodules option
  • Add parseCommit(AnyObjectId) method to Repository.
  • RepoCommand: Add linkfile support.
  • BundleWriter: Allow constructing from only an ObjectReader
  • Support creating Mergers without a Repository using an ObjectInserter and a config that declares a diff algorithm.
  • Run auto GC in the background. Execute gc at maximum once per day if number of loose unreachable objects which didn't expire yet exceeds limit.
  • Allow to use an external ExecutorService for background auto-gc
  • Use a dedicated executor to run auto-gc in command line interface
  • Fetch: Add --recurse-submodules and --no-recurse-submodules options


  • Exclude refs/tags from bitmap commit selection to reduce the number of bitmaps created and reduce the memory pressure on the GC task.
  • Reduce fetch bandwidth cost when objects described by the client are missing on the server

Build and Release Engineering

  • Upgrade maven plugins
  • Update jetty to 9.4.5 (Bug 516514)
  • Update Orbit dependencies to the Oxygen version R20170516192513

Bug Fixes

  • Checkout should not use too long filenames (Bug 508823)
  • Clean up the disk when cloning fails (Bug 516303)
  • Add shutdown hook to cleanup unfinished clone when JVM is killed (Bug 516303)
  • Fix stack overflow in MergeBaseGenerator
  • DfsGarbageCollector: Delete expired garbage even when there is no GC pack present.
  • When looping through alternates, prevent visiting the same object directory twice.
  • Fix RepoCommand to allow for relative URLs
  • PackWriterBitmapWalker: only throw MissingObjectException when necessary 
  • Archive TarFormat: Use commit time as timestamp for entries
  • Make diff locations more consistent fixing incorrectly removed or duplicated lines in 3-way merge (Bug 514095).
  • Fix out-of-bounds exception in RepoCommand#relative
  • Fix null return from FS.readPipe when command fails to launch


This release is part of Eclipse Oxygen.