Update to Java 7
- Update minimum required Java version from Java 5 to Java 7
- Remove bundles org.eclipse.jgit.console and org.eclipse.jgit.java7 which are no longer needed due to update to Java 7
- Implement AutoClosable and use it to ensure resource held by JGit get released when they are no longer needed
API cleanup
- Replace release() methods by close() to support AutoClosable
- Delete some deprecated classes and methods, details are available in Clirr API change report
- ObjectReader: remove the walkAdvice API
Configuration
- Remove the gitprefix logic and rework detecting Git system config file
- Allow to manually set the path to the Git system config file
- Add fsck.allowInvalidPersonIdent to accept invalid author/committers
Protocol
- Add support for quiet capability to ReceivePack
- Support agent= capability in wire protocol
Hooks
- Support for the commit-msg hook
Misc. Enhancements
- Allow ObjectWalk to be filtered by an arbitrary predicate
- Use ANY_DIFF filter in ResolveMerger for bare repositories
- ObjectWalk: make setRetainBody(false) the default
- Make MyersDiff interruptible
- Support --untracked-files in command line status command
- Support "--long" option in DescribeCommand and command line describe command
- Make s3 domain dynamic to support different s3 regions in AmazonS3 transport
- Allow public access to PackIndex
- Enhance ArchiveCommand to allow passing options to underlying stream
Introduce logging
- Use slf4j API to enable logging in JGit
- Use log4j-slf4j to log from org.eclipse.jgit.pgm
Performance Improvements
- Optimize EolAwareOutputStream for bulk output
- Buffer TemporaryBuffer's overflow output stream used by ResolveMerger to improve performance
- RevWalk: Discard uninteresting commits unless RevSort.BOUNDARY
Fixes
- Fix that exceptions in ReceivePack cause Invalid Channel 101 exceptions
- Don't invalidate pack file on InterruptedIOException
- Fix RecursiveMerger in case of multiple, independent base commits
- Fix many warnings
- Fix several memory leaks
Build and release engineering
- Update build to use eclipse-jarsigner-plugin 1.1.2
- Update build to use Tycho 0.23.0
- Update all standard maven plugins to latest versions
- Update to Jetty 9.2.10
- Update to javax.servlet 3.1
- Added more reports to Maven site