[http://git-scm.com/ Git] is a distributed SCM/VCS, which means every developer has a full copy of all history of every revision of the code, making queries against the history very fast and versatile. The EGit project is implementing Eclipse tooling on top of a Java implementation of Git.

+

[http://git-scm.com/ Git] is a distributed SCM/VCS, which means every developer has a full copy of all history of every revision of the code, making queries against the history very fast and versatile. The EGit project is implementing Eclipse tooling on top of a Java implementation of Git.

−

= What is JGit? =

+

= What is JGit? =

−

JGit is a [http://www.eclipse.org/org/documents/edl-v10.php EDL/BSD]

+

JGit is a [http://www.eclipse.org/org/documents/edl-v10.php EDL/BSD] licensed, lightweight, pure Java library implementing the [http://git-scm.com/ Git] version control file access routines, network protocols, and core version control algorithms.

The project follows a pattern of http://download.eclipse.org/egit/updates-<release> for its sites.

+

The project follows a pattern of http://download.eclipse.org/egit/updates-&lt;release&gt; for its sites.

+

+

== Retention Policy ==

−

== Retention Policy ==

All release p2 repositories will be kept forever.

All release p2 repositories will be kept forever.

−

= What versions of Eclipse does EGit target? =

+

= What versions of Eclipse does EGit target? =

−

In general EGit promises to support at least the latest two Eclipse releases

+

In general EGit promises to support at least the latest two Eclipse releases.

−

(as of this writing in Oct 2011 this is 3.6.2 "Helios SR2" and 3.7.1 "Indigo SR1").

+

If possible we will not prevent usage in older releases but if we want to take advantage of new functionality only available in one of the latest two Eclipse releases but not in older releases we will update dependencies which will in fact discontinue support for older releases.

If possible we will not prevent usage in older releases but if we want to take advantage of new functionality only available in one of the latest two Eclipse releases but not in older releases we will update dependencies which will in fact discontinue support for older releases.

−

'''THIS TABLE IS CURRENTLY A DRAFT'''

+

'''THIS TABLE IS CURRENTLY A DRAFT'''

−

{| cellpadding="3" cellspacing="0" border="1"

+

{| cellspacing="0" cellpadding="3" border="1"

−

!EGit

+

−

!released for

+

−

!Supported Version of Eclipse

+

|-

|-

−

|1.2-SNAPSHOT

+

! EGit

−

|3.7.1 (Indigo SR1)

+

! released for

−

|still Eclipse 3.5.2+ (Galileo) BUT if we find good reasons why we want to drop Galileo support in order to take advantage of new functionality only available in Helios we reserve the right to change this to 3.6.2+ (Helios)

Since 0.7.1 EGit requires Eclipse 3.5.2 (Galileo) or newer. See {{bug|308027}} for more details on providing support for Eclipse 3.4.

+

Compatible version of Git: Compatibility is on a feature by feature basis. Currently the major version

+

related difference is in how Git handles file names with non-ASCII file names. Git for Windows 1.7.10 and later encodes filenames in UTF-8 which is compatible with JGit. Git on Mac, v1.7.12 can encode filenames in a way that is compatible with EGit and Git for Windows if core.precomposeunicode is set to true.

−

Compatible version of Git: To Be Announced.

+

= What are the main differences between original Git and JGit(EGit)? =

+

See this page [http://wiki.eclipse.org/EGit/Differences_to_Git Differences to Git]

What is Git?

Git is a distributed SCM/VCS, which means every developer has a full copy of all history of every revision of the code, making queries against the history very fast and versatile. The EGit project is implementing Eclipse tooling on top of a Java implementation of Git.

What is JGit?

JGit is a EDL/BSD licensed, lightweight, pure Java library implementing the Git version control file access routines, network protocols, and core version control algorithms.

What is EGit?

EGit is an EPL licensed Eclipse Team provider for Git, built on top of JGit.

Retention Policy

All release p2 repositories will be kept forever.

What versions of Eclipse does EGit target?

In general EGit promises to support at least the latest two Eclipse releases.

If possible we will not prevent usage in older releases but if we want to take advantage of new functionality only available in one of the latest two Eclipse releases but not in older releases we will update dependencies which will in fact discontinue support for older releases.

Compatible version of Git: Compatibility is on a feature by feature basis. Currently the major version
related difference is in how Git handles file names with non-ASCII file names. Git for Windows 1.7.10 and later encodes filenames in UTF-8 which is compatible with JGit. Git on Mac, v1.7.12 can encode filenames in a way that is compatible with EGit and Git for Windows if core.precomposeunicode is set to true.

What are the main differences between original Git and JGit(EGit)?

What is the mapping Git commands to EGit operations?

How compatible is EGit with Git?

Some, but not all configuration options on Git are available in EGit/JGit. Here is a summary, not yet complete describing some of these, including noteable differences.

config

config

description

branch.autosetuprebase

supported

branch.autosetupmerge

supported

core.autocrlf

Since 2.0 supports true,false and input. See the tutorial for notes about making sure EGit picks up the configuration. Complementary core.safecrlf and gitattributes are not supported yet.

core.bare

supported

core.checkstat

supported (2.3)

core.compression

zlib compression level

core.excludesfile

Contains ignore rules, in addition to .gitignore

core.filemode

supported

core.ignorecase

not supported

core.logallrefupdates

supported

core.packindexversion

version 1 and 2 supported

core.precomposeunicode

always considered true on OS X, set on new repositories

core.repositoryformatversion

recognized, only "0" supported

core.safecrlf

not supported

core.worktree

supported in JGit, not EGit

diff.algorithm

myers, histogram (default: histogram)

pack.indexVersion

Default 2,-1 for older format

user.email

supported

user.name

supported

Supported in JGit, but no EGit usually amounts to having no or strange behavior would one
attempt to use it in the Eclipse IDE.

Notes:
For those that can read the source, look at ConfigConstants.java for a hint on what options
JGit recognizes. If it appears there, an option may be supported, but it may also mean for a few
cases that JGit just looks for it and then explicitly tells the user the option is not supported.
If it does not appear, it's most certainly up for grabs as a contribution. The file contains lots
of config options that only applies to JGit (DFS, gerrit).

environment

JGit supports some environment variables. Do not set those for the Eclipse IDE. We'll list a few ones
that may be used, but most apply only to using JGit from the command line.

variable

description

GIT_ALTERNATE_OBJECT_DIRECTORIES

supported

GIT_AUTHOR_EMAIL

supported

GIT_AUTHOR_NAME

supported

GIT_CEILING_DIRECTORIES

supported. Also EGit may be benefited when used with automounted file systems