4.7.0
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