|
|
|
Java Git
|
|
|
|
========
|
|
|
|
|
|
|
|
An implementation of the Git version control system in pure Java.
|
|
|
|
|
|
|
|
This package is licensed under the EDL (Eclipse Distribution
|
|
|
|
License).
|
|
|
|
|
|
|
|
JGit can be imported straight into Eclipse, built and tested from
|
|
|
|
there, but the automated builds use Maven.
|
|
|
|
|
|
|
|
- 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.pgm
|
|
|
|
|
|
|
|
Command-line interface Git commands implemented using JGit
|
|
|
|
("pgm" stands for program).
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
|
|
|
Tests
|
|
|
|
-----
|
|
|
|
|
|
|
|
- org.eclipse.jgit.junit
|
|
|
|
|
|
|
|
Helpers for unit testing
|
|
|
|
|
|
|
|
- org.eclipse.jgit.test
|
|
|
|
|
|
|
|
Unit tests for org.eclipse.jgit
|
|
|
|
|
|
|
|
- org.eclipse.jgit.ant.test
|
|
|
|
- org.eclipse.jgit.pgm.test
|
|
|
|
- org.eclipse.jgit.http.test
|
|
|
|
- org.eclipse.jgit.junit.test
|
|
|
|
|
|
|
|
No further description needed
|
|
|
|
|
|
|
|
Warnings/Caveats
|
|
|
|
----------------
|
|
|
|
|
|
|
|
- Native smbolic links are supported, provided the file system supports
|
|
|
|
them. For Windows you must have Windows Vista/Windows 2008 or newer,
|
|
|
|
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 requires at least a Java 8 JDK.
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
|
|
|
|
|
|
|
Package Features
|
|
|
|
----------------
|
|
|
|
|
|
|
|
- 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 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/
|
|
|
|
|
|
|
|
* Assorted set of command line utilities. Mostly for ad-hoc testing of jgit
|
|
|
|
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
|
|
|
|
|
|
|
|
Missing Features
|
|
|
|
----------------
|
|
|
|
|
|
|
|
There are some missing features:
|
|
|
|
|
|
|
|
- gitattributes support
|
|
|
|
|
|
|
|
|
|
|
|
Support
|
|
|
|
-------
|
|
|
|
|
|
|
|
Post question, comments or patches to the jgit-dev@eclipse.org mailing list.
|
|
|
|
You need to be subscribed to post, see here:
|
|
|
|
|
|
|
|
https://dev.eclipse.org/mailman/listinfo/jgit-dev
|
|
|
|
|
|
|
|
|
|
|
|
Contributing
|
|
|
|
------------
|
|
|
|
|
|
|
|
See the EGit Contributor Guide:
|
|
|
|
|
|
|
|
http://wiki.eclipse.org/EGit/Contributor_Guide
|
|
|
|
|
|
|
|
|
|
|
|
About Git
|
|
|
|
---------
|
|
|
|
|
|
|
|
More information about Git, its repository format, and the canonical
|
|
|
|
C based implementation can be obtained from the Git website:
|
|
|
|
|
|
|
|
http://git-scm.com/
|