Short Version:

 - Make small logical changes.
 - Provide a meaningful commit message.

 - Review and follow the Eclipse Due Diligence Process

     http://www.eclipse.org/projects/dev_process/ip-process-in-cartoons.php
     http://www.eclipse.org/legal/EclipseLegalProcessPoster.pdf

 - Review and follow the current guidelines:

     http://wiki.eclipse.org/EGit/Contributor_Guide


Long Version:

I wanted a file describing how to submit patches for EGit,
so I started with the one found in the core Git distribution
(Documentation/SubmittingPatches), which itself was based on the
patch submission guidelines for the Linux kernel.

However there are quite a few differences, so please review and
familiarize yourself with the following relevant bits:

(1) Make separate commits for logically separate changes.

Unless your patch is really trivial, you should not be sending
out a patch that was generated between your working tree and your
commit head.  Instead, always make a commit with complete commit
message and generate a series of patches from your repository.
It is a good discipline.

Describe the technical detail of the change(s).

If your description starts to get too long, that's a sign that you
probably need to split up your commit to finer grained pieces.

I am very picky about formatting.  Make sure your final version
of every file was formatted using the Eclipse code formatter
using the project specific settings (Properties->Java Code
Style->Formatter->"Java Conventions [built-in]").


(2) Generate your patch using git tools out of your commits.

git based diff tools (git, and StGIT included) generate unidiff,
which is the only acceptable format.

You do not have to be afraid to use -M option to "git diff" or "git
format-patch", if your patch involves file renames.  The receiving
end can handle them just fine.

Please make sure your patch does not include any extra files which
do not belong in a patch submission.  Make sure to review your
patch after generating it, to ensure accuracy.  Before sending out,
please make sure it cleanly applies to the "master" branch head.


(3) Check the license.

EGit is licensed under the Eclipse Public License (EPL).

Under this licensing model *every* file within the project
*must* list which license covers it in the header of the file.
Any new contributions to an existing file *must* be submitted under
the current license of that file.  Any new files *must* clearly
indicate which license they are provided under in the file header.

Please verify that you are legally allowed and willing to submit your
changes under the license covering each file *prior* to submitting
your patch.  It is virtually impossible to remove a patch once it
has been applied and pushed out.


(4) Review the Eclipse Due Diligence Process.

  http://www.eclipse.org/legal/EclipseLegalProcessPoster.pdf


(5) Sending your patches.

Preferably push your patches to Gerrit Code Review at
http://egit.eclipse.org/r/ as described in the Contributor Guide
http://wiki.eclipse.org/EGit/Contributor_Guide

"git format-patch" command follows the best current practice to
format a commit as a reviewable text message.

At the beginning of the patch should come your commit message,
a line that consists of three dashes, followed by the diffstat
information and the patch itself.  If you are forwarding a patch
from somebody else, optionally, at the beginning of the e-mail
message just before the commit message starts, you can put a "From:
" line to name that person.

You often want to add additional explanation about the patch,
other than the commit message itself.  Place such "cover letter"
material between the three dash lines and the diffstat, or please
place it in the bug description itself.

Open a new bug on the Eclipse bug tracker on the EGit project:

  https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EGit

Attach the mailbox file(s) created by "git format-patch" to the bug.

