Eclipse JGit: Java implementation of Git 4.5 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, September 21, 2016




  • Push implementation of option strings.
    Example usage:
        $ ./jgit push \
          --push-option "" \
          --push-option "<arbitrary string>" \
          origin HEAD:refs/for/master
    Push options were also added to cgit
  • Packet logging for JGit
    Imitate the packet tracing feature from C Git. Unlike C Git, use the log4j
    log level setting instead of the GIT_TRACE_PACKET environment variable
    to enable tracing. Use as follows:
    1. Enable tracing by adding the lines
  , stderr
        to org.eclipse.jgit.pgm/resources/
    2. mvn package
    3. org.eclipse.jgit.pgm/target/jgit \
            ls-remote git:// 2>&1 | less
    Then the output provides a trace of packets sent and received over the wire
  • Shallow fetch/clone: Make --depth mean the total history depth
    cgit changed the --depth parameter to mean the total depth of history
    rather than the depth of ancestors to be returned. JGit still uses
    the latter meaning, so update it to match cgit.
  • Shallow fetch: Respect "shallow" lines
  • ReceivePack: report protocol parsing failures on channel 3
  • Push: Report fatal server errors during pack writing
  • Add configureJSch() method to allow configuration of JSch objects
  • Add support for post-commit hooks
  • Enhance ResetCommand to allow disabling reflog update

JGit Command Line

  • Added a clean command.
  • Tag command: implement option -d for deleting tags


  • improve exception handling in LfsProtocolServlet