| 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/ |