X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=HACKING;h=353e72f165c06191617cb77a0e00484360d55762;hp=6e4fc4b3323d183d7389fad34a8a890e8f799995;hb=7af4ec859db39ef9618032780ceb3ca99a205dcd;hpb=1b0862c189f8db70f65e0eeabb749580d71e0e97 diff --git a/HACKING b/HACKING index 6e4fc4b332..353e72f165 100644 --- a/HACKING +++ b/HACKING @@ -1,14 +1,52 @@ -Submitting patches to the OpenOCD mailing list: +NB! If you're behind a corporate wall with http only access to the +world, you can still use these instructions! -By the time you have read this, one supposes that -you have figured out how to clone the OpenOCD git -repository. +Submitting patches to the OpenOCD Gerrit server: + +OpenOCD is to some extent a "self service" open source project, so to +contribute, you must follow the standard procedures to have the best +possible chance to get your changes accepted. + +The procedure to create a patch is essentially: + +- make the changes +- create a commit +- send the changes to the Gerrit server for review +- correct the patch and re-send it according to review feedback + + +0. Create a Gerrit account at: + +http://openocd.zylin.com + +- On subsequent sign ins, use the full URL prefaced with 'http://' + For example: + + http://user_identifier.open_id_provider.com + +0.1. Add a username to your profile. + +After creating the Gerrit account and signing in, you will need to +add a username to your profile. To do this, go to 'Settings', and +add a username of your choice. + +Your username will be required in step 2 and substituted wherever +the string 'USERNAME' is found. + +0.2. Add an SSH public key + +Following the directions for your specific platform: -Below is a basic workflow and specific instructions -to get you going with git and patches. + for Windows: help.github.com/win-set-up-git/#_set_up_ssh_keys + for OSX: help.github.com/mac-set-up-git/#_set_up_ssh_keys + for Linux: help.github.com/linux-set-up-git/#_set_up_ssh_keys -0. Clone the git repository, rather than just -download the source. +While these pages describe the setting up of git as well, +you should scroll down the page till you get to the section: +'Next: Set Up SSH Keys', and follow the steps described. + +1. Clone the git repository, rather than just +download the source. git clone git://openocd.git.sourceforge.net/gitroot/openocd/openocd @@ -17,19 +55,43 @@ the slower http protocol: git clone http://repo.or.cz/r/openocd.git -1. Set up git with your name and email: +2. Set up Gerrit with your local repository. All this does it +to instruct git locally how to send off the changes. + +Add a new remote to git using Gerrit username: + +git remote add review ssh://USERNAME@openocd.zylin.com:29418/openocd.git +git config remote.review.push HEAD:refs/for/master + +Or with http only: + +git remote add review http://openocd.zylin.com/p/openocd.git +git config remote.review.push HEAD:refs/for/master + +You will need to install this hook, we will look into a better +solution: + +scp -p -P 29418 USERNAME@openocd.zylin.com:hooks/commit-msg .git/hooks/ + +Or with http only: + +wget http://openocd.zylin.com/tools/hooks/commit-msg +mv commit-msg .git/hooks +chmod +x .git/hooks/commit-msg + +3. Set up git with your name and email: git config --global user.name "John Smith" git config --global user.email "john@smith.org" -2. Work on your patches. Split the work into +4. Work on your patches. Split the work into multiple small patches that can be reviewed and applied seperately and safely to the OpenOCD repository. while(!done) { work - edit files using your favorite editor. - run "git commit -a" to commit all changes. + run "git commit -s -a" to commit all changes. } TIP! use "git add ." before commit to add new files. @@ -41,16 +103,21 @@ longer comments over several lines... ----- -3. Next you need to make sure that your patches +5. Next you need to make sure that your patches are on top of the latest stuff on the server and that there are no conflicts. -git pull --rebase +git pull --rebase origin/master + +6. Send the patches to the Gerrit server for review. + +git push review + +7. Forgot something, want to add more? Just make the changes and do: -4. Generate the patch files. This will generate -patches for all commits that are on top of -the latest stuff on the server: +git commit --amend +git push review -git format-patch origin/master +Further reading: -5. Email the patches to openocd-development@lists.berlios.de +http://www.coreboot.org/Git \ No newline at end of file