# JGit

## Features

- bug 434085 Use the same default diff.renameLimit = 400 like native git
- Parse signature of GPG-signed commits
- Replace fetch.useminimalnegotation flag with fetch.maxhaves flag
- Protocol V2
  - FetchV2Request: Rename shallowSince to deepenSince
  - Add fetch support to ProtocolV2Hook
  - bug 534847 Introduce ProtocolV2Hook
  - Fetch protocol v2: Respond with shallow-info before wanted-refs
  - Support protocol v2 want-ref in UploadPack
- Allow overriding DfsPackDescription comparator for scanning packs
- Make DfsConfig public
- Add ls-files CLI command
- RepoCommand: Support remove-project node in the manifest parser
- RepoCommand: record remote branch, group, shallow bit by default
- SubmoduleAddCommand: Add API to specify the submodule name

## Performance Improvements

- Seek references by prefix in reftable
- Fix a GC scalability issue when selecting commit bitmaps
- bug 485743 Avoid expensive getAllRefsByPeeledObjectId() in PlotWalk constructor

## Bug Fixes

- bug 536318 Fix replacement quoting for replaceAll in filter command
- bug 537969 Fix atomic lock file creation on NFS configured via option core.supportsAtomicCreateNewFile
- GC: Avoid logging errors when deleting non-empty folders
- bug 538286 Fix NoSuchFileException in GC.deleteTempPacksIdx()
- bug 538285 Fix NoSuchFileException during directory cleanup in RefDirectory
- bug 529400 Fix fetching with duplicate ref updates
- bug 529314 Fetch(Process): should tolerate duplicate refspecs
- bug 538068 SubmoduleDeinitTest fails on Windows
- bug 538068 FilterCommandsTest fails on Windows
- bug 538068 ReceivePackAdvertiseRefsHookTest.testSuccess() fails on Windows
- bug 537969 Fix wrong warning message in case of lock failures
- Fix GC run in foreground to not use executor
- Fix unpredictable ordering of entries in .gitmodules.
- bug 537410 Fix ResolveMerger: rebase with autocrlf=true, direct checkout
- bug 537790 Ensure that JSch knows HostKeyAlgorithms ssh-rsa and ssh-dss
- bug 536324 Abort rename detection in a timely manner if cancelled
- RepoCommand: Use project names instead of paths for the submodule name
- Send only 1 flush pkt at the end of v2 fetch
- bug 499543 Fix NPE in BlameGenerator.getSourceStart()
- bug 537166 HttpClientConnection.getHeaderFields should support multiple values for same header
- Always send refs' objects despite "filter" in pack
- bug 536880 ResolveMerger: don't try needlessly to delete directories
- bug 526111 Ensure RacyGitTests don't raise false negatives
- GC: Trim more EWAHCompressedBitmaps to free unused memory
- Make Reftable seek* and has* method names more consistent
- Add progress monitor step to first phase of GC commit selection
- bug 536541 Add response message, if any, on HTTP status 404
- Correctly handle initialization of shallow commits
- CleanCommand: don't fire WorkingTreeModifiedEvent on dry run
- DfsPackDescription: Disallow null PackSource

## Build and Release Engineering

- Update Orbit 2018-09 to R20180905201904
- Update Photon orbit repository to R20180606145124
- Bazel: Use hyphen instead of underscore in external repository names
- Update bazel dependencies to match maven dependencies
- Update Jetty to 9.4.11.v20180605
- Update org.apache.commons.codec to 1.10.0.v20180409-1845
- Update org.apache.commons.logging to 1.2.0.v20180409-1502
- Update org.apache.httpcomponents.httpclient to 4.5.5.v20180409-1525
- Update org.apache.httpcomponents.httpcore to 4.4.9.v20180409-1525
- Update Maven plugins
  - build-helper-maven-plugin 3.0.0
  - eclipse-jarsigner-plugin 1.1.5
  - jacoco-maven-plugin 0.8.1
  - maven-clean-plugin 3.1.0
  - maven-compiler-plugin 3.8.0
  - maven-jar-plugin 3.1.2
  - maven-pmd-plugin 3.10.0
  - maven-resources-plugin 3.1.0
  - maven-shade-plugin 3.1.1
  - maven-site-plugin 3.7.1
  - maven-surefire-plugin 2.21.0
  - maven-surefire-report-plugin 2.21.0
  - plexus-compiler-javac 2.8.4
  - spotbugs-maven-plugin 3.1.6
  - wagon-ssh 3.1.0
- Upgrade Tycho to 1.2.0

## Contributors

The following 19 contributors worked on this release:

Andrey Loskutov, Christian Halstrick, Dave Borowitz, David Pursehouse, David Turner, Gabriel Couto, Gunnar Wagenknecht, Han-Wen Nienhuys, Ivan Frade, Jonathan Nieder, Jonathan Tan, Markus Duft, Masaya Suzuki, Matthias Sohn, Michael Keppler, Minh Thai, René Scheibe, Terry Parker, Thomas Wolf