]> git.sur5r.net Git - openocd/blobdiff - HACKING
TCL/SPEAr: Add reference to ST Application Note
[openocd] / HACKING
diff --git a/HACKING b/HACKING
index 5718798dfb19513036149ed3704fec62247b4034..353e72f165c06191617cb77a0e00484360d55762 100644 (file)
--- 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,33 +55,69 @@ 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.
 
-3. Next you need to make sure that your patches
+--- example comment, notice the short first line w/topic ---
+topic: short comment
+<blank line>
+longer comments over several
+lines...
+-----
+
+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