| 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 JGit, |
| 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. |
| |
| JGit is licensed under the Eclipse Distribution License (EDL, |
| http://www.eclipse.org/org/documents/edl-v10.html), which is a |
| renamed version of the new style/3-clause BSD license. |
| |
| 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. |
| |
| "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. |
| |