
EGit Installation

PREREQUISITES

In order to install the Git Eclipse plugin you need to have the following
things.

- Eclipse version 3.8.2/4.2.2 or newer

- Since 4.6 JGit and EGit require Java 8.

- A reasonably recent version of Git itself installed on your platform to
  take care of what the plugin does not yet do or do things that native
  git does better. Some tests have been performed using both Cygwin and MSYS git.
  Both have issues that we need both feedback and patches for.

AUTOMATED INSTALLATION INSTRUCTIONS

- Find installation instructions on https://www.eclipse.org/egit/download/

MANUAL INSTALLATION INSTRUCTIONS

- Run the Maven build as described in the contributor guide
  https://wiki.eclipse.org/EGit/Contributor_Guide#Builds
  and install egit from the p2 repository generated by the build at
  org.eclipse.egit.repository/target/repository

DEBUGGING INSTRUCTIONS

- Select the org.eclipse.egit.ui project, and using the context menu select
  Run As(or Debug As) / Eclipse Application. Make sure the application runs
  using JDK 1.8 or newer.

REPORTING BUGS

- There may be errors in the <workspace>/.metadata/.log or even on stdout that can help
  you track down and problem. When reporting errors include stack traces and the commit
  id or the version your plugin is built from, or the version of the plugin if it does
  not contain a date.

- Check https://www.eclipse.org/egit/support/ to find information about reporting bugs.
