Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EGit/FAQ"

(config)
(environment)
Line 223: Line 223:
 
!description
 
!description
 
|-
 
|-
|GIT_ALTERNATE_OBJECT_DIRECTORIES_KEY
+
|GIT_ALTERNATE_OBJECT_DIRECTORIES
 
|supported
 
|supported
 
|-
 
|-
|GIT_AUTHOR_NAME_EMAIL
+
|GIT_AUTHOR_EMAIL
 
|supported
 
|supported
 
|-
 
|-
|GIT_AUTHOR_NAME_KEY
+
|GIT_AUTHOR_NAME
 
|supported
 
|supported
 
|-
 
|-
|GIT_CEILING_DIRECTORIES_KEY
+
|GIT_CEILING_DIRECTORIES
 
|supported. Also EGit may be benefited when used with automounted file systems
 
|supported. Also EGit may be benefited when used with automounted file systems
 
|-
 
|-
Line 238: Line 238:
 
|supported
 
|supported
 
|-
 
|-
|GIT_INDEX_FILE_KEY
+
|GIT_INDEX_FILE
 
|supported
 
|supported
 
|-
 
|-
|GIT_OBJECT_DIRECTORY_KEY
+
|GIT_OBJECT_DIRECTORY
 
|supported
 
|supported
 
|-
 
|-

Revision as of 02:05, 31 January 2013

EGit
Website
Download
Community
Mailing ListForumsIRCmattermost
Issues
OpenHelp WantedBug Day
Contribute
Browse SourceProject Set File

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.

See the embrynonic JGitTutorial.

What is EGit?

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

What is New and Noteworthy?

You can find the latest changes for EGit and JGit below:

Where can I find older releases of EGit?

It's recommended to use the latest released version of EGit, find it's p2 repository here http://download.eclipse.org/egit/updates.

In case you need an older version, try an older repository:

Release Version p2 repository URL
2.2.0.201212191850-r http://download.eclipse.org/egit/updates-2.2
2.1.0.201209190230-r http://download.eclipse.org/egit/updates-2.1
2.0.0.201206130900-r http://download.eclipse.org/egit/updates-2.0
1.3.0.201202151440-r http://download.eclipse.org/egit/updates-1.3
1.2.0.201112221803-r http://download.eclipse.org/egit/updates-1.2
1.1.0.201109151100-r http://download.eclipse.org/egit/updates-1.1
1.0.0.201106090707-r http://download.eclipse.org/egit/updates-1.0
0.12.1 (Incubation) http://download.eclipse.org/egit/updates-0.12
0.11.3 (Incubation) http://download.eclipse.org/egit/updates-0.11
0.10.1 (Incubation) http://download.eclipse.org/egit/updates-0.10
0.9.3 (Incubation) http://download.eclipse.org/egit/updates-0.9
0.8.4 (Incubation) http://download.eclipse.org/egit/updates-0.8

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

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.

THIS TABLE IS CURRENTLY A DRAFT

EGit released for Supported Version of Eclipse
2.3-SNAPSHOT - Eclipse 3.7.2+ (Indigo)
2.2.0.201212191850-r 3.8.1/4.2.1 (Juno SR1) Eclipse 3.7.2+ (Indigo)
2.1.0.201209190230-r 3.8.1/4.2.1 (Juno SR1) Eclipse 3.5.2+ (Galileo) (except EGit Import Support feature, which is optional)
2.0.0.201206130900-r 3.8/4.2 (Juno) Eclipse 3.5.2+ (Galileo) (except EGit Import Support feature, which is optional)
1.3.0.201202151440-r 3.7.2 (Indigo SR2) Eclipse 3.5.2+ (Galileo)
1.2.0.201112221803-r 3.7.2 (Indigo SR2) Eclipse 3.5.2+ (Galileo)
1.1.0.201109151100-r 3.7.1 (Indigo SR1) Eclipse 3.5.2+ (Galileo)
1.0.0.201106090707-r 3.7.0 (Indigo) Eclipse 3.5.2+ (Galileo)

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.

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

See this page Differences to Git

What is the mapping Git commands to EGit operations?

See this page Mapping Git Commands

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
GIT_DIR supported
GIT_INDEX_FILE supported
GIT_OBJECT_DIRECTORY supported
GIT_SSH plink, tortoiseplink

SSH config

TBD: JGit does its own parsing of the ~/.ssh/config file.

Back to the top