Eclipse JGit: Java implementation of Git 4.9.1

This release fixes the following issues

  • Work-around for a Jsch bug which causes timeouts configured in ~/.ssh/config are interpreted in milliseconds instead of seconds. (bug 526867)
  • Work around for a Jsch bug: ensure the user name is set from URI (bug 526778)
  • Ensure that ~ in ssh config is replaced before Jsch sees it (bug 526175)
  • Fix NPE in TransportGitSsh.ExtSession.exec() (bug 527383)
  • Add missing help text for rev-parse's --verify option
  • Remove final modifier on args4j argument field in RevParse
  • Performance improvement in FileRepository: add pack-based inserter implementation
  • ObjectDirectory: Remove last modified check in insertPack so that insertPack does not insert a duplicate entry.
  • Reintroduce protected method which removal broke EMF Compare, see abf420302 for details.
  • Avoid bad rounding "1 year, 12 months" in date formatter
  • GC: Remove stale temporary packs and indexes at the end of the GC process so they do not accumulate. To avoid interfering with a possible concurrent JGit GC process in the same repository, only delete temporary files that are older than one day.
  • Fix LockFile semantics when running on NFS. When running on NFS there was a chance that JGits LockFile semantic is broken because File#createNewFile() may allow multiple clients to create the same lock file in parallel. If the new config option core.supportsAtomicCreateNewFile is true then File#createNewFile() is trusted and the behaviour doesn't change. If core.supportsAtomicCreateNewFile is set to false then after successful creation of the lock file use the workaround described in [1] to avoid the problem.

    [1] https://www.time-travellers.org/shane/papers/NFS_considered_harmful.html, section III.d) "Exclusive File Creation
  • Honor trustFolderStats also when reading packed-refs. Then the list of packed refs was cached in RefDirectory based on mtime of the packed-refs file. This may fail on NFS when file attributes are cached. A cached mtime of the packed-refs file could cause JGit to trust the cached content of this file and to overlook that the file is modified. Honor the config option trustFolderStats and always read the packed-refs content if the option is false. By default this option is set to true and this fix is not active.
Release Date
Release Type
Service release (bug fixes only)