Merge branch 'master' into next
* master:
Prepare 7.7.0-SNAPSHOT builds
JGit v7.7.0.202605201743-m3
TemporaryBuffer.LocalFile: use Files.newInputStream()
Update docs for logAllRefUpdates
DfsPackDescription: New method getTotalFileSize()
MidxPackList: Add a builder to edit the pack list
Update slf4j to 2.0.18
Update Jetty to 12.1.9
Update commons-io to 2.22.0
Update commons-codec to 1.22.0
Update gson to 2.14.0
Revert "DfsPackCompactor: Accept DfsPackDescription as input"
Pack/PackMidx: mark as @Nullable methods that deserve it
PackMidx: Style fixes like unused throws
Update urllib3 to at least 2.7.0 to fix CVE-2026-44432
Update python used to deploy release to maven central to 3.14
DfsPackCompactor: Accept DfsPackDescription as input
DfsPackFileMidx tests: Compare byte[] for checksum
TestProtocolTest: Cover additional fetch edge cases
DfsPackCompacterTest: Add test for compacting only data in a pack
FetchProcess: Report lock failure when destination ref changes
MidxWriter: List instead of Collection and method references
Add regression test on non-forced fetch and local updates
Prepare 7.7.0-SNAPSHOT builds
PullResult: Improve toString by implementing for children.
pack-refs: Add fully-peeled flag
pack-refs: Fix buggy way of marking peeled trait
gitrepo: update git-repo URL in javadocs
JGit v7.7.0.202604291911-m2
RefDirectory#refreshPathToLooseRef: also refresh loose ref itself
RefDirectory#refreshPathToLooseRef: also refresh loose ref itself
pack-refs: Correctly define peeled trait
ReceivePack: Add missing @since tag for new API method
TreeWalkConnectivityChecker: Support non-commit objects in refs
ReceivePack: make getClientShallowCommits protected
DfsObjDatabase: Make createDfsPackFile public
DfsPackCompactor: add a pre-commit hook to plug midx calculation
Update bouncycastle to 1.84
[ssh] Reject host certificates if the certified key is revoked
Add new TreeWalkConnectivityChecker
Make the PackParser.needNewObjectIds method public
orbit: update org.apache.ant to 1.10.17.v20260410-1000
MidxMetadataReader: add private constructor and adjust method visibility
MidxWriter: Write to tmp files and use atomic rename to commit
Instrument ReceivePack to track time spent in pre-receive hooks
parse-packed-refs: Check to sort only when header is not present
pack-refs: Always add sorted trait
Prepare 7.7.0-SNAPSHOT builds
JGit v7.7.0.202604061937-m1
Update jetty to 12.1.8
Update bytebuddy to 1.18.8
push: Report fatal server errors during pack writing
Revert "push: Report fatal server errors during pack writing"
PushConnectionTest: Introducing the limitPackSize() test
MidxWriter: Do not accept midx to build new midx
PackDirectory: Integrate Multi-Pack Index (MIDX) support
PackMidx: A Pack subclass that uses midx
PackBitmapIndexRemapper: Throw exception with details in size mismatches
Bazel: bump to 8.6.0 and switch to pure Bzlmod
MidxMetadataReader: Helper to read only selected fields in the midx
WindowCursor/Pack: Move bitmap coverage calculation to the pack
[version.sh] Don't use the pager for the git diff command
PackBitmapIndexRemapper: Do not remap if the object order is the same
DfsMidxWriter: Do not accept midx as input to build midx
javadoc: Mention midx order in the javadoc
MidxPackList: getAllPlainPacks returns object-lookup order
MidxPackListTest: Use fake packs for easier test setup
Slightly reword prunePackExpire docs
MultiPackIndex: write midx bitmaps from cli tool
MidxWriter: write bitmaps with the midx
Update org.tukaani:xz to 1.12
Update mockito to 5.23.0
Update Jetty to 12.1.7
Update bytebuddy to 1.18.7
Update commons-logging to 1.3.6
Add jgit-4.40 target platform for next simrel 2026-06
Use releases p2 repo in jgit-4.39 target platform
Add timing metrics to ReceivedPackStatistics
MultiPackIndexWriter: typo in logging (is chunks, not chuncks)
Add CLAUDE.md to gitignore file
MultiPackIndexWriter: Encode checksum in base64
DfsMidxWriter: Use the input data instead of rereading the midx
DfsMidxWriter: Add a param to toggle bitmap writing
PullCommandTest: Remove unused variable
Update URL used to download artifacts from repo.eclipse.org
Fix path of jgit artifacts in local maven repository
MultiPackIndexWriter: report also the checksum in the result
RefAdvancerWalk: Move to revwalk package
pgm.MultiPackIndex: Move writing code to MidxWriter
Allow extending TernarySearchTree
MultiPackIndexWriter: Report progress writing chunks
PackIndexMerger: Add progress monitor to the building process
Bump minimum dependency for Bouncy Castle to 1.83.0
Update version of last JGit release to 7.6.0.202603022253-r
DfsMidxWriter: Split writing midx and its bitmaps
MultiPackIndexLoader: report what chunk is going over size
Prepare 7.7.0-SNAPSHOT builds
Prepare 7.6.1-SNAPSHOT builds
DfsPackFileMidx: Pass the right pack when building single-pack midx
JGit v7.6.0.202603022253-r
Add AddCommand #addFilepatterns methods
Bazel: Pin jcl-over-slf4j to SLF4J_VERSION
Prepare 7.6.0-SNAPSHOT builds
JGit v7.6.0.202602242313-rc1
Support diff3 conflict style in merges
RebaseCommand: Honor the commit message cleanup configuration
Remove the option to create 'blank issues' in GitHub
Refactor handlePackError method to improve readability
PackIndexMerger: Accept a midx as input to build another midx
DfsPackFileMidxNPacks: Use only the list of packs in midx order
DfsMidxWriterTest: Rename to DfsMidxWriterBitmapsTest
Update jetty to 12.1.6
Update bytebuddy to 1.18.5
Update commons-codec to 1.21.0
Orbit: update org.objenesis to 3.5.0
DfsMidxWriter: Pass the PackIndexMerger instead of a Map of sources
MidxIterators join: compare shifted packId
DfsPackFileMidx: Offer localIterator
Prepare 7.6.0-SNAPSHOT builds
JGit v7.6.0.202602181523-m3
PackIndexMerger: replace constructor with Builder
JGit v7.6.0.202602172005-m3
MidxIterator: Add reset method
PackIndexMerger: remove rawIterator() method
PackIndexMerge: Use deduped iterators instead of deduping while reading
PackIndexMerger: use MidxIterators instead of its own
MidxIterators: Helpers around the MidxIterator
Do not log packfiles moved away or pruned
Bazel: align JGit with shared external_deps repository
Bazel: bump rules_jvm_external to 6.10
MultiPackIndex: Offer an iterator over the entries in the midx
RevWalk: abort computation of merged commits if the monitor is canceled
[cli] Add options --pack-refs and --no-pack-refs to Gc command
Add missing LF at the end of GarbageCollectCommandTest
Add GarbageCollectCommand#setGcConfig
GC: add flag to control whether gc should pack all refs
Downgrade spring-boot-maven-plugin to 3.5.10
pack-refs: Add sorted flag
Bazel: enforce strict MODULE.bazel.lock synchronization
DfsPackFileMidxSingle: No need to set ints to 0 in constructor
MidxPackFilter: Remove debug printlns
DfsMidxWriter: add writing bitmaps to the newly created midx
RefAdvancer: helper to find when a branch enters a pack
Throw IOException if API tries to use destroyed TemporaryBuffer
Update com.google.errorprone:error_prone_type_annotations to 2.46.0
Update Apache sshd to 2.17.1
Prepare 7.6.0-SNAPSHOT builds
DfsPackFileMidx: offer local objects as ObjectToPack
JGit v7.6.0.202601262032-m2
Update org.assertj:assertj-core to 3.27.7
DfsPackFileMidxNPacks: getBitmapIndex tries to load midx bitmaps
PackBitmapIndexBuilderTest: add test to the bitmap builder storage
Update bytebuddy to 1.18.4
Update org.objectweb.asm to 9.9.1
PackBitmapCalculator: Move code to calculate bitmaps out of PackWriter
DfsPackFileMidx: expose the checksum of the midx
DfsPackFile: Use getPackIndex while loading bitmaps
DfsMidxWriter: set file size for the midx extension
DfsPackFileMidx*Test: Use MidxTestUtils when possible
DfsPackFileMidx: Implement PackReverseIndex over midx
DfsPackFileMidx: Implement PackIndex over midx
MultiPackIndex: add the checksum to the midx
DfsPackFileMidx: Add method to translate midx position to objectId
MultiPackIndex: Add #getObjectAt to translate position to id
MultiPackIndex: implement methods for the reverse index
Update python dependencies of download_release.py
Prepare 7.6.0-SNAPSHOT builds
JGit v7.6.0.202601071437-m1
Update Maven plugins
Update compiler versions
MultiPackIndexLoader: do not ignore the ridx chunk
MultiPackIndexWriter: write "bitmapped packfiles" chunk
Add target platform jgit-4.39 for 2025-03
Switch to 4.38 release URL of release train p2 repo
Update mockito to 5.21.0
Fix invalid HTML closing tag in javadoc
Document how to test new release staged on Maven Central Portal
MidxPackFilter: Keep max one midx in the stack
Update jetty to 12.1.5
Consume rbe_autoconfig as bazel module
MODULE.bazel: Move dependencies from WORKSPACE to bazel modules
Add missing reference to commons-io
Fix invalid HTML tags in javadoc
DfsPackFileMidx: Introduce single-pack midx
DfsPackFileMidx: Move implementation to subclass
Update bouncycastle to 1.83
Update bytebuddy to 1.18.2
Update version of last JGit release to 7.5.0.202512021534-r
Prepare 7.6.0-SNAPSHOT builds
Prepare 7.5.1-SNAPSHOT builds
JGit v7.5.0.202512021534-r
[ignore patterns] Backslash is a general escape
Prepare 7.5.0-SNAPSHOT builds
JGit v7.5.0.202511251519-rc1
Do not always refresh packed-refs during ref updates
Update Maven plugins
Update org.eclipse.jdt:ecj to 3.43.0
Update plexus-compiler to 2.16.0
Update org.tukaani:xz to 1.11
chore: Add sbom generation and upload workflow
Prepare 7.5.0-SNAPSHOT builds
JGit v7.5.0.202511181624-m3
Update jetty to 12.1.4
Update commons-lang3 to 3.20.0
Update bytebuddy to 1.18.1
Silence non-externalized String warning
Document empty blocks
BlameRegionMerger: externalize error message
Remove unnecessary semicolon
MidxPackList: Methods to find the top midx and uncovered packs
Update commons-codec:commons-codec to 1.20.0
Update commons-io:commons-io to 2.21.0
HttpConnection: add missing @since tag
Avoid reading packed-refs concurrently sometimes
Improve flaky InterruptTimerTests
Improve the README
LfsPrePushHook: recognize 201 as successful response from LFS server
Revert "PackList: keep the list of unused midxs"
DfsGarbageCollector: Ignore midxs, commitPack() takes care of them
DfsGarbageCollectorTest: Assert there are not midxs in the db
DfsObjDatabase: delete affected midxs when covered packs are deleted
[debug logging] Escape control characters other than TAB, CR, or LF
Refine time unit parsing to throw exception on invalid values
[ssh] Simplify code
PackList: keep the list of unused midxs
DfsObjDatabase: Move midx pack mangling to getPacks()
Prepare 7.5.0-SNAPSHOT builds
JGit v7.5.0.202510290248-m2
InterruptTimer: don't use Yoda-style condition
InterruptTimer: avoid expensive notify when begin is soon after end
InterruptTimer: avoid unneeded notify for end()
Disable MergeToolTest#testEmptyToolName
Fix hamcrest version to 3.0.0 in target platform
Add InterruptTimer Tests
Update slf4j to 2.0.17
Update org.hamcrest to 3.0.0
DfsPackFile: asObjectIdSet() when only inclusion is needed.
DfsObjDatabase: read reftables from midx covered packs
Update jetty to 12.1.3
Fix signed push failing when using push options
DfsReader/PackFile: Move bitmap inclusion check to the packfile
Use generic Map interface in signature of internal API methods
Allow to discover bitmap on disk created after the packfile
DfsPackCompactor: add toPrune method
MidxPackList: Helper to get packs/midx and overlaps between them
DfsPackFileMidx: make the class public
[ssh] Fix order of keys in pubkey auth if an agent is used
Update bytebuddy to 1.17.8
Update jetty to 12.1.2
DfsPackCompactor: Move #autoAdd to the tests (its only caller)
DfsPackFileMidx: add #getAllCoveredPacks() method
DfsGarbageCollector: handle pack lists with multipack indexes
DfsPackFileMidx: Return bitmap from any underlying pack
midx: caller chooses the order of packs in the midx
DfsObjDatabase: make #setUseMultipackIndex public
MidxPackFilterTest: Remove unused import
DfsObjDatabase: move pack mangling to helper MidxPackFilter
Document how to test a release staged in Maven Central Portal
DfsMidxWriter: helper class to create a pack with an midx
DfsObjDatabase: make useMultipackIndex getter/setter protected
Update Maven plugins
Prepare 7.5.0-SNAPSHOT builds
DfsObjDatabase: introduce multipack index
JGit v7.5.0.202510071400-m1
Add jgit-4.38 target platform for Eclipse 2025-12
Update jna to 5.18.1
Migrate deployment to Maven Central to use Central Portal API
DfsPackFileMidx: getters for the midx covered packs and base
DfsPackFileMidx: support a chain of multi-pack indexes
DfsPackFileMidx: A packfile using the multipack index
Checkout: don't fail if no commitish was given
Remove unnecessary else clause
Remove redundant null check
Remove unused API error filters
Fix discouraged access warnings
Fix boxing warnings
Suppress some boxing warnings
Suppress some unboxing warnings
Remove unnecessary semicolon
Silence API error for constant CoreConfig.DEFAULT_MULTIPACK_INDEX_ENABLE
Update org.mockito:mockito-core to 5.20.0
Update jetty to 12.1.1
Update bouncycastle to 1.82
Update org.assertj:assertj-core to 3.27.6
Update org.apache.commons:commons-lang3 to 3.19.0
Update jna to 5.18.0
Update com.google.code.gson:gson to 2.13.2
ConfigConstants: Add constant for multipack index
Support unshallow request in Boundary/TopoSortGenerators
Make UNSHALLOW a globally available static RevFlag
DfsPackDescription: make covered packs non-null
Disable BOUNDARY and TOPO sort for unshallow fetches
BasePackWriterTest: Increase test coverage for unshallow fetches
IndexDiffWithSymlinkTest: Java 20+ stores NFC, not NFD
DfsPackDescription: Add fields for multipack index
BasePackWriterTest: Improve assertion of unexpected items in pack
BasePackWriterTest: use assertThrows instead of @Test(expected=...)
[releng] Bump japicmp base version to 7.4.0.202509020913-r
BasePackWriterTest: Fix message on pack index content assertion
BasePackWriterTest: Use @expected instead of catching exceptions
BasePackWriterTest: Prefer use of Java native sort vs. Collections
Provide specific test for HPE NonStop OSS file system long file names.
Prepare 7.5.0-SNAPSHOT builds
Prepare 7.4.1-SNAPSHOT builds
Fix NPE when calling GC.prune(Set<ObjectId>)
JGit v7.4.0.202509020913-r
MultiPackIndex.resolve: handle correctly last object
MultiPackIndexWriter: report also object count and ordered packs
MultiPackIndex: add getObjectCount() method
MultiPackIndex: add findPosition method
MultipackIndex.PackOffset: add public static constructor
RevWalk: use SystemReader instead of System.getProperty()
PendingGenerator: drop only buffers loaded in the generator
Prepare 5.13.6-SNAPSHOT builds
JGit v5.13.5.202508271544-r
Prepare 7.4.0-SNAPSHOT builds
JGit v7.4.0.202508261455-rc1
Update apache sshd to 2.16.0
Do not include 3rd party dependencies in features
Ensure pack files are closed after git.close()
Prepare 7.4.0-SNAPSHOT builds
JGit v7.4.0.202508191000-m3
Update mockito to 5.19.0
Update jetty to 12.1.0
Update org.assertj:assertj-core to 3.27.4
Update bytebuddy to 1.17.7
Remove resolver option from target-platform-configuration
Add missing release property to maven build
Suppress API errors for minor API changes in service releases
Remove unnecessary casts
util.Iterators: suppress warning about object arrays
util.Iterators: private constructor for utility class
pgm: new command for the object size index
WindowCursor: honor pack.useObjectSizeIndex
Prevent CommitGraphWriter.write() from closing its stream
Make CancellableDigestOutputStream extend FilterOutputStream
Shortcut PackWriter reuse selection when possible
Update org.apache.commons:commons-compress to 1.28.0
SmartHttpFetchConnection: suppress errors on close()
Mark Git(Repository repo, boolean closeRepo) public
Use volatiles for bitmap and revIndex in Pack
Fix performance regression in Pack.idx()
Don't use Yoda style conditions to improve readability
Use LocalObjectToPack representation more
Use representation from LocalObjectToPack if possible
Avoid conditional in LocalObjectRepresentation.wasDeltaAttempted
Prepare 7.4.0-SNAPSHOT builds
Update commons-lang3 to 3.18.0
Update commons-io to 2.20.0
Update commons-codec to 1.19.0
JGit v7.4.0.202507290921-m2
Add 4.37 target platform for Eclipse IDE 2025-09
Use chunked encoding when uploading LFS objects
Add Bundle-SCM header to OSGi manifests
WindowCursor: Use the object size index when possible
GC: Write object size index if config says so
MergeToolTest: update expected error from the tool
Add dash license check for 3rd party dependencies
ObjectDirectoryPackParser: Write object-size index with the pack
PackInserter: write object-size index with the pack
Pack: getter for the indexed object size (when available)
Prepare 5.13.5-SNAPSHOT builds
JGit v5.13.4.202507202350-r
AmazonS3: Do not accept DOCTYPE and entities
ManifestParser: Do not accept DOCTYPE and entities
AdvertisedRequestValidator: fix WantNotValidException caused by race
Prepare 5.13.4-SNAPSHOT builds
Fix packaging build
[releng] Fix maven builds on JVM 21 and with newer git on MacOS
Restore WORKSPACE and Bazel 7.6.1
Prepare 7.4.0-SNAPSHOT builds
JGit v7.4.0.202507080956-m1
Fix JGit version exposed in bazel module
MODULE.bazel: Include version in the jgit module
Update jetty to 12.0.23
Update bytebuddy to 1.17.6
Lock reftable auto-refresh to ensure consistency
DfsObjDatabase.PackList: Remove PackListImpl subclass
DfsObjDatabase.PackList: Remove dirty flag setters
DfsPackFile: Delete #getIndexedObjectSize for ObjectId
MultiPackIndexLoader: Add NON-NLS annotation to message
ChangedPathFilter: Suppress nls warnings in toString
JGitText.properties: Use {n} instead %s in messages
DfsReader: Reuse index position when looking up object size
DfsReader: Use new findPack instead of findPackWithObject
DfsReader: return idx position when looking up object in packs
DfsReader: Handle correctly invalid object-size indexes
Fix: Close the "preserved" PackDirectory
Update jetty to 12.0.22
Update bouncycastle to 1.81
Update last jgit release to 7.3.0.202506031305-r
Prepare 7.4.0-SNAPSHOT builds
Prepare 7.3.1-SNAPSHOT builds
JGit v7.3.0.202506031305-r
Update maven plugins
Use the same ordering/locking in delete() as C git
Prepare 7.3.0-SNAPSHOT builds
JGit v7.3.0.202505281347-rc1
Prepare 7.1.2-SNAPSHOT builds
JGit v7.1.1.202505221757-r
Prepare 7.0.2-SNAPSHOT builds
JGit v7.0.1.202505221510-r
Prepare 6.10.2-SNAPSHOT builds
JGit v6.10.1.202505221210-r
AmazonS3: Do not accept DOCTYPE and entities
ManifestParser: Do not accept DOCTYPE and entities
Update mockito to 5.18.0
Update Jetty to 12.0.21
Update com.google.code.gson:gson to 2.13.1
Prepare 7.3.0-SNAPSHOT builds
JGit v7.3.0.202505211123-m3
FS.getFileStoreAttributes: cancel failed task executed asynchronously
DfsReader/PackFile: Move represention to the packfile
DfsPackFile: Remove unused getObjectCount method
Prepare 7.2.2-SNAPSHOT builds
JGit v7.2.1.202505142326-r
AmazonS3: Do not accept DOCTYPE and entities
ManifestParser: Do not accept DOCTYPE and entities
FileReftableStack: ensure new reftable files aren't missed on NFS
Encapsulate layout of reftable stack in FileReftableStack
Prepare 7.3.0-SNAPSHOT builds
JGit v7.3.0.202505070700-m2
DfsInserter: Remove checkExisting setter and parameter
PlotRefComparator: fix #timeof
PlotWalk: Replace call to deprecated method in PersonIdent
midx: Fix license header from Google Inc. to LLC
Remove option to enable bzlmod
Update bazel to 8.2.1
Update bazel to 7.6.1
MODULE.bazel: Move dependencies from WORKSPACE to bazel modules
Update commons-io:commons-io to 2.19.0
Update com.google.code.gson:gson to 2.13.0
PackExt: Add value for the multipack index
MultiPackIndex: Add and implement #resolve() method
MultiPackIndexWriter: Handle empty packs
MultiPackIndexWriter: return bytes written
MultiPackIndexV1: Calculate memsize with long
Prepare 7.3.0-SNAPSHOT builds
MultiPackIndexV1: Reorder methods and add NON-NLS annotations
MultiPackIndex: add #getMemorySize() method
midx: reader for the multipack index
JGit v7.3.0.202504081226-m1
Update mockito to 5.17.0
Update jetty to 12.0.19
Update bytebuddy to 1.17.5
DfsPackFile.PackIndexes: pass primary index to reverse index
tools/BUILD: Make AssertEqualsArgumentOrder a warning
PullCommandTest: remove unnecessary method reference
Fix package name of spring boot JarLauncher class in jgit.sh
tests: avoid assertEquals on same instance
Update bytebuddy to 1.17.3
Update mockito to 5.16.1
Update jna to 5.17.0
Update jetty to 12.0.18
SystemReader: Add support for XDG_CACHE_HOME
Removed redundant TreeFilter.ANY_DIFF in LogCommand.
Bump minimum dependency for Bouncy Castle to 1.80.0
BlameResult: Let generator decide when to use the blame cache
exttst: Pass encoding to InputStreamReader
Update last jgit release version to 7.2.0.202503040940-r
Update scm url in pom.xml to refer to gerrit homepage of jgit repo
TreeRevFilter: enable Bloom Filter usage with ChangedPathTreeFilter
ReftableCompactor: Use instant to set the reflog expire time
GC: Use new java.time API in PersonIdent
reftable.BlockWriter: Use time API methods from PersonIdent
Add target platform jgit-4.36 for eclipse 2025-06
Checkout: Handle InvalidRefNameException
BlameGenerator: Use cache only for candidates modifying the path
Update maven plugins
Update spotbugs-maven-plugin to 4.9.2.0
Update mockito to 5.16.0
Update jetty to 12.0.17
Update bytebuddy to 1.17.2
FileReftableDatabase: mark autoRefresh volatile
Change-Id: I5a2d2096f2159806193aa1914623cc8a5f047506
An implementation of the Git version control system in pure Java.
JGit is licensed under the Eclipse Distribution License 1.0 (BSD-3-Clause).
Post questions, comments or discussions to the jgit-dev@eclipse.org mailing list. You need to be subscribed to post.
See the JGit and EGit Contributor Guide.
JGit can be imported straight into Eclipse and built and tested from there. It can be built from the command line using Maven or Bazel. The CI builds use Maven and run on Jenkins.
org.eclipse.jgit
A pure Java library capable of being run standalone, with no additional support libraries. It provides classes to read and write a Git repository and operate on a working directory.
All portions of JGit are covered by the EDL. Absolutely no GPL, LGPL or EPL contributions are accepted within this package.
org.eclipse.jgit.ant
Ant tasks based on JGit.
org.eclipse.jgit.archive
Support for exporting to various archive formats (zip etc).
org.eclipse.jgit.http.apache
Apache httpclient support.
org.eclipse.jgit.http.server
Server for the smart and dumb Git HTTP protocol.
org.eclipse.jgit.lfs
Support for LFS (Large File Storage).
org.eclipse.jgit.lfs.server
Basic LFS server support.
org.eclipse.jgit.packaging
Production of Eclipse features and p2 repository for JGit. See the JGit Wiki on why and how to use this module.
org.eclipse.jgit.pgm
Command-line interface Git commands implemented using JGit (“pgm” stands for program).
org.eclipse.jgit.ssh.apache
Client support for the SSH protocol based on Apache Mina sshd.
org.eclipse.jgit.ssh.apache.agent
Optional support for SSH agents for org.eclipse.jgit.ssh.apache.
org.eclipse.jgit.ui
Simple UI for displaying git log.
Native symbolic links are supported, provided the file system supports them. For Windows you must use a non-administrator account and have the SeCreateSymbolicLinkPrivilege.
Only the timestamp of the index is used by JGit if the index is dirty.
JGit 6.0 and newer requires at least Java 11. Older versions require at least Java 1.8.
CRLF conversion is performed depending on the core.autocrlf setting, however Git for Windows by default stores that setting during installation in the “system wide” configuration file. If Git is not installed, use the global or repository configuration for the core.autocrlf setting.
The system wide configuration file is located relative to where C Git is installed. Make sure Git can be found via the PATH environment variable. When installing Git for Windows check the “Run Git from the Windows Command Prompt” option. There are other options like Eclipse settings that can be used for pointing out where C Git is installed. Modifying PATH is the recommended option if C Git is installed.
We try to use the same notation of $HOME as C Git does. On Windows this is often not the same value as the user.home system property.
org.eclipse.jgit
Read loose and packed commits, trees, blobs, including deltafied objects.
Read objects from shared repositories
Write loose commits, trees, blobs.
Write blobs from local files or Java InputStreams.
Read blobs as Java InputStreams.
Copy trees to local directory, or local directory to a tree.
Lazily loads objects as necessary.
Read and write .git/config files.
Create a new repository.
Read and write refs, including walking through symrefs.
Read, update and write the Git index.
Checkout in dirty working directory if trivial.
Walk the history from a given set of commits looking for commits introducing changes in files under a specified path.
Object transport
Fetch via ssh, git, http, Amazon S3 and bundles. Push via ssh, git, http, and Amazon S3. JGit does not yet deltify the pushed packs so they may be a lot larger than C Git packs.
Garbage collection
Merge
Rebase
And much more
org.eclipse.jgit.pgm
org.eclipse.jgit.ant
org.eclipse.jgit.archive
org.eclipse.http
There are some missing features:
More information about Git, its repository format, and the canonical C based implementation can be obtained from the Git website.