|
|
@ -1,15 +1,16 @@ |
|
|
|
Java Git |
|
|
|
# Java Git |
|
|
|
======== |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
An implementation of the Git version control system in pure Java. |
|
|
|
An implementation of the Git version control system in pure Java. |
|
|
|
|
|
|
|
|
|
|
|
This package is licensed under the EDL (Eclipse Distribution |
|
|
|
This project is licensed under the __EDL__ (Eclipse Distribution |
|
|
|
License). |
|
|
|
License). |
|
|
|
|
|
|
|
|
|
|
|
JGit can be imported straight into Eclipse, built and tested from |
|
|
|
JGit can be imported straight into Eclipse and built and tested from |
|
|
|
there, but the automated builds use Maven. |
|
|
|
there. It can be built from the command line using |
|
|
|
|
|
|
|
[Maven](https://maven.apache.org/) or [Bazel](https://bazel.build/). |
|
|
|
|
|
|
|
The CI builds use Maven and run on [Jenkins](https://ci.eclipse.org/jgit/). |
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit |
|
|
|
- __org.eclipse.jgit__ |
|
|
|
|
|
|
|
|
|
|
|
A pure Java library capable of being run standalone, with no |
|
|
|
A pure Java library capable of being run standalone, with no |
|
|
|
additional support libraries. It provides classes to read and |
|
|
|
additional support libraries. It provides classes to read and |
|
|
@ -18,63 +19,73 @@ there, but the automated builds use Maven. |
|
|
|
All portions of JGit are covered by the EDL. Absolutely no GPL, |
|
|
|
All portions of JGit are covered by the EDL. Absolutely no GPL, |
|
|
|
LGPL or EPL contributions are accepted within this package. |
|
|
|
LGPL or EPL contributions are accepted within this package. |
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.ant |
|
|
|
- __org.eclipse.jgit.ant__ |
|
|
|
|
|
|
|
|
|
|
|
Ant tasks based on JGit. |
|
|
|
Ant tasks based on JGit. |
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.archive |
|
|
|
- __org.eclipse.jgit.archive__ |
|
|
|
|
|
|
|
|
|
|
|
Support for exporting to various archive formats (zip etc). |
|
|
|
Support for exporting to various archive formats (zip etc). |
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.http.apache |
|
|
|
- __org.eclipse.jgit.http.apache__ |
|
|
|
|
|
|
|
|
|
|
|
Apache httpclient support |
|
|
|
[Apache httpclient](https://hc.apache.org/httpcomponents-client-ga/) support. |
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.http.server |
|
|
|
- __org.eclipse.jgit.http.server__ |
|
|
|
|
|
|
|
|
|
|
|
Server for the smart and dumb Git HTTP protocol. |
|
|
|
Server for the smart and dumb |
|
|
|
|
|
|
|
[Git HTTP protocol](https://github.com/git/git/blob/master/Documentation/technical/http-protocol.txt). |
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.pgm |
|
|
|
- __org.eclipse.jgit.lfs__ |
|
|
|
|
|
|
|
|
|
|
|
Command-line interface Git commands implemented using JGit |
|
|
|
Support for [LFS](https://git-lfs.github.com/) (Large File Storage). |
|
|
|
("pgm" stands for program). |
|
|
|
|
|
|
|
|
|
|
|
- __org.eclipse.jgit.lfs.server__ |
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.packaging |
|
|
|
Basic LFS server support. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- __org.eclipse.jgit.packaging__ |
|
|
|
|
|
|
|
|
|
|
|
Production of Eclipse features and p2 repository for JGit. See the JGit |
|
|
|
Production of Eclipse features and p2 repository for JGit. See the JGit |
|
|
|
Wiki on why and how to use this module. |
|
|
|
Wiki on why and how to use this module. |
|
|
|
|
|
|
|
|
|
|
|
Tests |
|
|
|
- __org.eclipse.jgit.pgm__ |
|
|
|
----- |
|
|
|
|
|
|
|
|
|
|
|
Command-line interface Git commands implemented using JGit |
|
|
|
|
|
|
|
("pgm" stands for program). |
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.junit |
|
|
|
- __org.eclipse.jgit.ssh.apache__ |
|
|
|
|
|
|
|
|
|
|
|
Helpers for unit testing |
|
|
|
Client support for the ssh protocol based on |
|
|
|
|
|
|
|
[Apache Mina sshd](https://mina.apache.org/sshd-project/). |
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.test |
|
|
|
- __org.eclipse.jgit.ui__ |
|
|
|
|
|
|
|
|
|
|
|
Unit tests for org.eclipse.jgit |
|
|
|
Simple UI for displaying git log. |
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.ant.test |
|
|
|
## Tests |
|
|
|
- org.eclipse.jgit.pgm.test |
|
|
|
|
|
|
|
- org.eclipse.jgit.http.test |
|
|
|
|
|
|
|
- org.eclipse.jgit.junit.test |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
No further description needed |
|
|
|
- __org.eclipse.jgit.junit__, __org.eclipse.jgit.junit.http__, |
|
|
|
|
|
|
|
__org.eclipse.jgit.junit.ssh__: Helpers for unit testing |
|
|
|
|
|
|
|
- __org.eclipse.jgit.ant.test__: Unit tests for org.eclipse.jgit.ant |
|
|
|
|
|
|
|
- __org.eclipse.jgit.http.test__: Unit tests for org.eclipse.jgit.http.server |
|
|
|
|
|
|
|
- __org.eclipse.jgit.lfs.server.test__: Unit tests for org.eclipse.jgit.lfs.server |
|
|
|
|
|
|
|
- __org.eclipse.jgit.lfs.test__: Unit tests for org.eclipse.jgit.lfs |
|
|
|
|
|
|
|
- __org.eclipse.jgit.pgm.test__: Unit tests for org.eclipse.jgit.pgm |
|
|
|
|
|
|
|
- __org.eclipse.jgit.ssh.apache.test__: Unit tests for org.eclipse.jgit.ssh.apache |
|
|
|
|
|
|
|
- __org.eclipse.jgit.test__: Unit tests for org.eclipse.jgit |
|
|
|
|
|
|
|
|
|
|
|
Warnings/Caveats |
|
|
|
## Warnings/Caveats |
|
|
|
---------------- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Native smbolic links are supported, provided the file system supports |
|
|
|
- Native symbolic links are supported, provided the file system supports |
|
|
|
them. For Windows you must have Windows Vista/Windows 2008 or newer, |
|
|
|
them. For Windows you must use a non-administrator account and have the SeCreateSymbolicLinkPrivilege. |
|
|
|
use a non-administrator account and have the SeCreateSymbolicLinkPrivilege. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Only the timestamp of the index is used by jgit if the index is |
|
|
|
- Only the timestamp of the index is used by jgit if the index is |
|
|
|
dirty. |
|
|
|
dirty. |
|
|
|
|
|
|
|
|
|
|
|
- JGit requires at least a Java 8 JDK. |
|
|
|
- JGit requires at least a Java 8 JDK. |
|
|
|
|
|
|
|
|
|
|
|
- CRLF conversion is performed depending on the core.autocrlf setting, |
|
|
|
- CRLF conversion is performed depending on the `core.autocrlf` setting, |
|
|
|
however Git for Windows by default stores that setting during |
|
|
|
however Git for Windows by default stores that setting during |
|
|
|
installation in the "system wide" configuration file. If Git is not |
|
|
|
installation in the "system wide" configuration file. If Git is not |
|
|
|
installed, use the global or repository configuration for the |
|
|
|
installed, use the global or repository configuration for the |
|
|
@ -88,102 +99,69 @@ Warnings/Caveats |
|
|
|
is installed. Modifying PATH is the recommended option if C Git is |
|
|
|
is installed. Modifying PATH is the recommended option if C Git is |
|
|
|
installed. |
|
|
|
installed. |
|
|
|
|
|
|
|
|
|
|
|
- We try to use the same notation of $HOME as C Git does. On Windows |
|
|
|
- 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. |
|
|
|
this is often not the same value as the `user.home` system property. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Package Features |
|
|
|
## Features |
|
|
|
---------------- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit/ |
|
|
|
- __org.eclipse.jgit__ |
|
|
|
|
|
|
|
- Read loose and packed commits, trees, blobs, including |
|
|
|
* Read loose and packed commits, trees, blobs, including |
|
|
|
|
|
|
|
deltafied objects. |
|
|
|
deltafied objects. |
|
|
|
|
|
|
|
- Read objects from shared repositories |
|
|
|
* Read objects from shared repositories |
|
|
|
- Write loose commits, trees, blobs. |
|
|
|
|
|
|
|
- Write blobs from local files or Java InputStreams. |
|
|
|
* Write loose commits, trees, blobs. |
|
|
|
- Read blobs as Java InputStreams. |
|
|
|
|
|
|
|
- Copy trees to local directory, or local directory to a tree. |
|
|
|
* Write blobs from local files or Java InputStreams. |
|
|
|
- Lazily loads objects as necessary. |
|
|
|
|
|
|
|
- Read and write .git/config files. |
|
|
|
* Read blobs as Java InputStreams. |
|
|
|
- Create a new repository. |
|
|
|
|
|
|
|
- Read and write refs, including walking through symrefs. |
|
|
|
* Copy trees to local directory, or local directory to a tree. |
|
|
|
- Read, update and write the Git index. |
|
|
|
|
|
|
|
- Checkout in dirty working directory if trivial. |
|
|
|
* Lazily loads objects as necessary. |
|
|
|
- Walk the history from a given set of commits looking for commits |
|
|
|
|
|
|
|
|
|
|
|
* 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. |
|
|
|
introducing changes in files under a specified path. |
|
|
|
|
|
|
|
- Object transport |
|
|
|
|
|
|
|
|
|
|
|
* Object transport |
|
|
|
|
|
|
|
Fetch via ssh, git, http, Amazon S3 and bundles. |
|
|
|
Fetch via ssh, git, http, Amazon S3 and bundles. |
|
|
|
Push via ssh, git and Amazon S3. JGit does not yet deltify |
|
|
|
Push via ssh, git and Amazon S3. JGit does not yet deltify |
|
|
|
the pushed packs so they may be a lot larger than C Git packs. |
|
|
|
the pushed packs so they may be a lot larger than C Git packs. |
|
|
|
|
|
|
|
|
|
|
|
* Garbage collection |
|
|
|
- Garbage collection |
|
|
|
|
|
|
|
- Merge |
|
|
|
* Merge |
|
|
|
- Rebase |
|
|
|
|
|
|
|
- And much more |
|
|
|
* Rebase |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* And much more |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.pgm/ |
|
|
|
- __org.eclipse.jgit.pgm__ |
|
|
|
|
|
|
|
- Assorted set of command line utilities. Mostly for ad-hoc testing of jgit |
|
|
|
* Assorted set of command line utilities. Mostly for ad-hoc testing of jgit |
|
|
|
|
|
|
|
log, glog, fetch etc. |
|
|
|
log, glog, fetch etc. |
|
|
|
|
|
|
|
- __org.eclipse.jgit.ant__ |
|
|
|
|
|
|
|
- Ant tasks |
|
|
|
|
|
|
|
- __org.eclipse.jgit.archive__ |
|
|
|
|
|
|
|
- Support for Zip/Tar and other formats |
|
|
|
|
|
|
|
- __org.eclipse.http__ |
|
|
|
|
|
|
|
- HTTP client and server support |
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.ant/ |
|
|
|
## Missing Features |
|
|
|
|
|
|
|
|
|
|
|
* Ant tasks |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.jgit.archive/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Support for Zip/Tar and other formats |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- org.eclipse.http.*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* HTTP client and server support |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Missing Features |
|
|
|
|
|
|
|
---------------- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There are some missing features: |
|
|
|
There are some missing features: |
|
|
|
|
|
|
|
|
|
|
|
- gitattributes support |
|
|
|
- verifying signed commits |
|
|
|
|
|
|
|
- signing tags |
|
|
|
|
|
|
|
- signing push |
|
|
|
Support |
|
|
|
|
|
|
|
------- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Post question, comments or patches to the jgit-dev@eclipse.org mailing list. |
|
|
|
## Support |
|
|
|
You need to be subscribed to post, see here: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
https://dev.eclipse.org/mailman/listinfo/jgit-dev |
|
|
|
Post questions, comments or discussions to the jgit-dev@eclipse.org mailing list. |
|
|
|
|
|
|
|
You need to be [subscribed](https://dev.eclipse.org/mailman/listinfo/jgit-dev) |
|
|
|
|
|
|
|
to post. File bugs and enhancement requests in |
|
|
|
|
|
|
|
[Bugzilla](https://wiki.eclipse.org/EGit/Contributor_Guide#Filing_Bugs). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Contributing |
|
|
|
|
|
|
|
|
|
|
|
Contributing |
|
|
|
See the EGit Contributor Guide: http://wiki.eclipse.org/EGit/Contributor_Guide |
|
|
|
------------ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
See the EGit Contributor Guide: |
|
|
|
## About Git |
|
|
|
|
|
|
|
|
|
|
|
http://wiki.eclipse.org/EGit/Contributor_Guide |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
About Git |
|
|
|
|
|
|
|
--------- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
More information about Git, its repository format, and the canonical |
|
|
|
More information about Git, its repository format, and the canonical |
|
|
|
C based implementation can be obtained from the Git website: |
|
|
|
C based implementation can be obtained from the |
|
|
|
|
|
|
|
[Git website](http://git-scm.com/). |
|
|
|
http://git-scm.com/ |
|
|
|
|
|
|
|