1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
NB! If you're behind a corporate wall with http only access to the
world, you can still use these instructions!
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:
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
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
or if you have problems with the "git:" protocol, use
the slower http protocol:
git clone http://repo.or.cz/r/openocd.git
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"
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 -s -a" to commit all changes.
}
TIP! use "git add ." before commit to add new files.
--- 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 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:
git commit --amend
git push review
Further reading:
http://www.coreboot.org/Git
|