Mercurial > mplayer.hg
annotate DOCS/tech/svn-howto.txt @ 33263:5f527a9a9521
Add an exit function.
This function will allow performing clean-up operations.
(MPlayer calls guiDone() before exiting, but only if the GUI has been
initialized, i.e. if guiInit() has been called successfully. Any
exit_player()/exit_player_with_rc() after GUI's cfg_read() until
guiInit(), or any exit_player() during guiInit() itself will end the GUI
without calling guiDone(). This exit function will at least handle
abortions during guiInit() itself. It will be called twice in case of an
guiExit() after GUI initialization - first directly, next by guiDone()
via MPlayer's exit_player_with_rc().)
author | ib |
---|---|
date | Tue, 03 May 2011 12:19:22 +0000 |
parents | 48622875aecc |
children |
rev | line source |
---|---|
2200 | 1 |
18660 | 2 About Subversion write access: |
3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
2200 | 4 |
18705 | 5 Before everything else, you should know how to use Subversion properly. |
18840 | 6 Luckily Subversion comes with excellent documentation. |
11395
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
7 |
18705 | 8 svn help |
18840 | 9 |
10 shows you the available subcommands, | |
11 | |
12 svn help <command> | |
11395
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
13 |
18840 | 14 shows information about the subcommand <command>. |
15 | |
16 The most comprehensive manual is the book "Version Control with Subversion" | |
17 by Ben Collins-Sussman, Brian W. Fitzpatrick and C. Michael Pilato. It can | |
18 be viewed online at | |
11395
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
19 |
18705 | 20 http://svnbook.org/ |
11395
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
21 |
18705 | 22 For more information about the Subversion project, visit |
11395
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
23 |
30791 | 24 http://subversion.apache.org/ |
11395
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
25 |
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
26 Consult these resources whenever you have problems, they are quite exhaustive. |
18840 | 27 |
30792
f89de69d4527
Clarify that ssh is not required for committing to MPlayer.
diego
parents:
30791
diff
changeset
|
28 You do not need a special checkout that works through ssh or similar in order |
f89de69d4527
Clarify that ssh is not required for committing to MPlayer.
diego
parents:
30791
diff
changeset
|
29 to be able to commit changes. All you need is the username and password pair |
f89de69d4527
Clarify that ssh is not required for committing to MPlayer.
diego
parents:
30791
diff
changeset
|
30 that you received from the MPlayer Subversion server admin. |
f89de69d4527
Clarify that ssh is not required for committing to MPlayer.
diego
parents:
30791
diff
changeset
|
31 |
18840 | 32 What follows now is a basic introduction to Subversion and some MPlayer-specific |
33 guidelines. Read it at least once, if you are granted commit privileges to the | |
34 MPlayer project you are expected to be familiar with these rules. | |
11395
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
35 |
7904
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
36 |
18841 | 37 |
18840 | 38 I. BASICS: |
39 ========== | |
40 | |
19248
dd30cb46819d
Add a paragraph about which Subversion version to use.
diego
parents:
18845
diff
changeset
|
41 0. Get Subversion: |
dd30cb46819d
Add a paragraph about which Subversion version to use.
diego
parents:
18845
diff
changeset
|
42 |
28777 | 43 The MPlayer project server runs Subversion 1.5. For optimal compatibility |
44 you should use version 1.5 or later. | |
19248
dd30cb46819d
Add a paragraph about which Subversion version to use.
diego
parents:
18845
diff
changeset
|
45 |
dd30cb46819d
Add a paragraph about which Subversion version to use.
diego
parents:
18845
diff
changeset
|
46 |
18840 | 47 1. Checking out the source tree: |
7904
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
48 |
18840 | 49 svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ <target> |
2200 | 50 |
18840 | 51 This will put the MPlayer sources into the directory <target>. |
2200 | 52 |
18841 | 53 |
18840 | 54 2. Updating the source tree to the latest revision: |
18706 | 55 |
56 svn update | |
12024 | 57 |
18840 | 58 pulls in the latest changes from the repository to your working directory. |
59 | |
18841 | 60 |
18840 | 61 3. Adding/removing files/directories: |
62 | |
63 svn add <filename/dirname> | |
64 svn delete <filename/dirname> | |
65 | |
66 Subversion needs to get notified of all changes you make to your working | |
67 directory. | |
68 | |
18841 | 69 |
18840 | 70 4. Showing modifications: |
71 | |
72 svn diff <filename(s)> | |
73 | |
74 will show all local modifications in your working directory as unified diff. | |
75 | |
18841 | 76 |
18840 | 77 5. Inspecting the changelog: |
78 | |
79 svn log <filename(s)> | |
80 | |
81 You may also find viewvc, a web frontend for Subversion, helpful. It's often | |
82 more comfortable than using 'svn log' and 'svn diff'. Find it here: | |
83 http://svn.mplayerhq.hu/mplayer/trunk/ | |
84 | |
18841 | 85 |
18840 | 86 6. Checking source tree status: |
87 | |
88 svn status | |
89 | |
90 detects all the changes you made and lists what actions will be taken in case | |
91 of a commit (additions, modifications, deletions, etc.). | |
92 | |
18841 | 93 |
18840 | 94 7. Committing: |
2200 | 95 |
18767 | 96 svn update |
18840 | 97 |
98 Run 'svn update' before committing to make sure there were no changes to the | |
99 files you worked on in the meantime. Afterwards look at the output of | |
100 | |
101 svn diff <filename(s)> | |
12024 | 102 |
18840 | 103 to doublecheck your changes before committing to avoid trouble later on. All |
104 experienced developers do this on each and every commit, no matter how small. | |
105 Every one of them has been saved from looking like a fool by this many times. | |
106 It's very easy for stray debug output or cosmetic modifications to slip in, | |
107 please avoid problems through this extra level of scrutiny. | |
108 | |
23047
702085652768
Suggest svn diff command that does not show most cosmetics
reimar
parents:
22511
diff
changeset
|
109 For cosmetics-only commits you should get (almost) empty output from |
702085652768
Suggest svn diff command that does not show most cosmetics
reimar
parents:
22511
diff
changeset
|
110 |
29510
8ba4a5ee1480
Adjust documentation about filtering out whitespace changes from 'svn diff'.
diego
parents:
29369
diff
changeset
|
111 svn diff -x -uwb <filename(s)> |
23047
702085652768
Suggest svn diff command that does not show most cosmetics
reimar
parents:
22511
diff
changeset
|
112 |
19573
35d9fef1879e
svn diff does not show files you forgot to add, so recommend of svn status, too
reimar
parents:
19382
diff
changeset
|
113 Also check the output of |
35d9fef1879e
svn diff does not show files you forgot to add, so recommend of svn status, too
reimar
parents:
19382
diff
changeset
|
114 |
35d9fef1879e
svn diff does not show files you forgot to add, so recommend of svn status, too
reimar
parents:
19382
diff
changeset
|
115 svn status |
35d9fef1879e
svn diff does not show files you forgot to add, so recommend of svn status, too
reimar
parents:
19382
diff
changeset
|
116 |
19662 | 117 to make sure you did not forget to 'svn add' some files (they will be marked |
19573
35d9fef1879e
svn diff does not show files you forgot to add, so recommend of svn status, too
reimar
parents:
19382
diff
changeset
|
118 with '?'). |
35d9fef1879e
svn diff does not show files you forgot to add, so recommend of svn status, too
reimar
parents:
19382
diff
changeset
|
119 |
18840 | 120 Once you have made sure everything is fine |
121 | |
122 svn commit <filename(s)> | |
123 | |
124 propagates your stuff to the repository. If you have made several independent | |
125 changes, commit them separately, not at the same time. | |
126 | |
127 When prompted for a password, type the password you got assigned by the | |
128 project admins. By default, Subversion caches all authentication tokens. | |
22510 | 129 This behavior can be disabled by setting both 'store-passwords' and |
18706 | 130 'store-auth-creds' to "no" in ~/.subversion/config. You might need to remove |
131 previous cache files, which are located in ~/.subversion/auth, by hand. | |
12024 | 132 |
18840 | 133 You will be prompted for a log message in an editor, which is either specified |
134 by --editor-cmd on the command line, set in your personal configuration file | |
135 (~/.subversion/config) or set by one of the following environment variables: | |
136 SVN_EDITOR, VISUAL or EDITOR. | |
12024 | 137 |
18840 | 138 Log messages should be concise but descriptive. Explain why you made a change, |
139 what you did will be obvious from the changes themselves most of the time. | |
140 Saying just "bug fix" or "10l" is bad. Remember that people of varying skill | |
141 levels look at and educate themselves while reading through your code. Don't | |
142 include filenames in log messages, Subversion provides that information. | |
18706 | 143 |
18841 | 144 |
19357
59af53f4f436
update the moving & copying rules as disscussed on mplayer-dev + some (but not all as iam lazy) fixes by the wanderer
michael
parents:
19248
diff
changeset
|
145 8. Renaming/moving/copying files or contents of files: |
13288 | 146 |
19376 | 147 svn move/copy <source> <destination> |
18840 | 148 svn commit <source> <destination> |
2200 | 149 |
19376 | 150 Do not move, rename or copy files of which you are not the maintainer without |
151 discussing it on the mplayer-dev-eng mailing list first! | |
19357
59af53f4f436
update the moving & copying rules as disscussed on mplayer-dev + some (but not all as iam lazy) fixes by the wanderer
michael
parents:
19248
diff
changeset
|
152 |
19376 | 153 Never copy or move a file by using 'svn delete' and 'svn add'. Always use |
154 'svn move' or 'svn copy' instead in order to preserve history and minimize | |
155 the size of diffs. | |
19357
59af53f4f436
update the moving & copying rules as disscussed on mplayer-dev + some (but not all as iam lazy) fixes by the wanderer
michael
parents:
19248
diff
changeset
|
156 |
19376 | 157 To split a file, use 'svn copy' and remove the unneeded lines from each file. |
2200 | 158 |
7904
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
159 Don't do a lot of cut'n'paste from one file to another without a very good |
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
160 reason and discuss it on the mplayer-dev-eng mailing list first. It will make |
18840 | 161 those changes hard to trace. |
5415 | 162 |
7904
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
163 Such actions are useless and treated as cosmetics in 99% of cases, |
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
164 so try to avoid them. |
11395
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
165 |
18841 | 166 |
11395
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
167 9. Reverting broken commits |
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
168 |
19382 | 169 There are 2 ways to reverse a change, they differ significantly in what they |
22510 | 170 do to the repository. |
19382 | 171 The recommit old method: |
172 svn merge | |
173 svn ci <file> | |
22510 | 174 This simply changes the file(s) back to their old version locally and then |
175 the change is committed as if it were a new change. | |
19382 | 176 The svn copy method |
177 svn rm <file> | |
178 svn cp -r<good revision> svn://svn.mplayerhq.hu/mplayer/trunk/[<path>/]<file> <file> | |
179 svn ci <file> | |
180 This simply removes the file and then copies the last good version with | |
22510 | 181 its history over it. This method can only be used to revert the n last |
182 commits but not to revert a bad commit in the middle of its history. | |
19382 | 183 Neither method will change the history, checking out an old version will |
184 always return exactly that revision with all its bugs and features. The | |
185 difference is that with the svn copy method the broken commit will not be | |
22238 | 186 part of the directly visible history of the revisions after the reversal |
187 So if the change was completely broken like reindenting a file against the | |
188 maintainers decision, or a change which mixed functional and cosmetic | |
22345 | 189 changes then it is better if it is not part of the visible history as it |
22510 | 190 would make it hard to read, review and would also break svn annotate. |
19382 | 191 For the example of a change which mixed functional and cosmetic parts they |
22238 | 192 should of course be committed again after the reversal but separately, so one |
22510 | 193 change with the functional stuff and one with the cosmetics. |
19382 | 194 OTOH if the change which you want to reverse was simply buggy but not |
195 totally broken then it should be reversed with svn merge as otherwise | |
22510 | 196 the fact that the change was bad would be hidden. |
19382 | 197 One method to decide which reversal method is best is to ask yourself |
22345 | 198 if there is any value in seeing the whole bad change and its removal |
22502 | 199 in SVN vs. just seeing a comment that says what has been reversed while |
22238 | 200 the actual change does not clutter the immediately visible history and |
19382 | 201 svn annotate. |
202 If you are even just slightly uncertain how to revert something then ask on | |
22345 | 203 the mplayer-dev-eng mailing list. |
15227
167085fd11af
'cvs admin -o' is dangerous and should be handled with extra care.
diego
parents:
14856
diff
changeset
|
204 |
18841 | 205 |
18840 | 206 10. Reverting local changes |
11395
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
207 |
18840 | 208 svn revert <filename(s)> |
14806
6abe4fb845ff
mphq uses ssh.com, explain RSA key generation for it.
diego
parents:
14059
diff
changeset
|
209 |
18706 | 210 In case you made a lot of local changes to a file and want to start over |
18840 | 211 with a fresh checkout of that file, you can use 'svn revert <filename(s)>'. |
18706 | 212 NOTE: This has nothing to do with reverting changes on the Subversion |
213 server! It only reverts changes that were not committed yet. If you need | |
214 to revert a broken commit, see 9. | |
11395
5484bc13e90a
Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents:
9537
diff
changeset
|
215 |
18841 | 216 |
18840 | 217 11. Changing commit messages |
18764
5b89070daa50
add command for changing commit messages after the commit took place.
ivo
parents:
18706
diff
changeset
|
218 |
5b89070daa50
add command for changing commit messages after the commit took place.
ivo
parents:
18706
diff
changeset
|
219 svn propedit svn:log --revprop -r <revision> |
5b89070daa50
add command for changing commit messages after the commit took place.
ivo
parents:
18706
diff
changeset
|
220 |
5b89070daa50
add command for changing commit messages after the commit took place.
ivo
parents:
18706
diff
changeset
|
221 If your commit message is too short or not explanatory enough, you can edit |
18845 | 222 it afterwards with 'svn propedit'. |
18764
5b89070daa50
add command for changing commit messages after the commit took place.
ivo
parents:
18706
diff
changeset
|
223 |
18841 | 224 |
18840 | 225 Contact the project admins <root at mplayerhq dot hu> if you have technical |
18706 | 226 problems with the Subversion server. |
7904
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
227 |
2200 | 228 |
229 | |
230 II. POLICY / RULES: | |
231 =================== | |
232 | |
13288 | 233 1. You must not commit code which breaks MPlayer! (Meaning unfinished but |
7904
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
234 enabled code which breaks compilation or compiles but does not work.) |
13288 | 235 You can commit unfinished stuff (for testing etc), but it must be disabled |
236 (#ifdef etc) by default so it does not interfere with other developers' | |
237 work. | |
2200 | 238 |
18841 | 239 |
7904
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
240 2. You don't have to over-test things. If it works for you, and you think it |
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
241 should work for others, too, then commit. If your code has problems |
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
242 (portability, exploits compiler bugs, unusual environment etc) they will be |
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
243 reported and eventually fixed. |
2200 | 244 |
18841 | 245 |
13288 | 246 3. Do not commit unrelated changes together, split them into self-contained |
22511
6fb4b3944764
Clarify that commits should not be split arbitrarily by file/directory.
diego
parents:
22510
diff
changeset
|
247 pieces, but not smaller. Do not split commits by files or directories, |
6fb4b3944764
Clarify that commits should not be split arbitrarily by file/directory.
diego
parents:
22510
diff
changeset
|
248 keep related changes together. |
2200 | 249 |
18841 | 250 |
25395 | 251 4. Do not change behavior of the program (renaming options etc) or remove |
252 functionality from the code without approval in a discussion on the | |
253 mplayer-dev-eng mailing list. | |
12024 | 254 |
18841 | 255 |
25395 | 256 5. Do not commit changes which change behavior, defaults etc, without asking |
257 first. The same applies to compiler warning fixes, trivial looking fixes and | |
258 to code maintained by other developers. We usually have a reason for doing | |
259 things the way we do. Send your changes as patches to the mplayer-dev-eng | |
260 mailing list, and if the code maintainers say OK, you may commit. This does | |
261 not apply to files you wrote and/or maintain. | |
13288 | 262 |
18841 | 263 |
31137 | 264 6. Do not mix cosmetic changes (indentation, function / variable renaming and |
265 similar) with functional changes in a single commit. Instead, commit such | |
266 changes as a separate commit of their own. | |
12024 | 267 |
18841 | 268 |
13288 | 269 7. Always fill out the commit log message. Describe in a few lines what you |
270 changed and why. You can refer to mailing list postings if you fix a | |
271 particular bug. Comments such as "fixed!" or "Changed it." are unacceptable. | |
2200 | 272 |
18841 | 273 |
13288 | 274 8. If you apply a patch by someone else, include the name and email address in |
25395 | 275 the log message. Since the mplayer-cvslog mailing list is publicly archived |
276 you should add some spam protection to the email address. Send an answer to | |
277 mplayer-dev-eng (or wherever you got the patch from) saying that you applied | |
278 the patch. If the patch contains a documentation change, commit that as | |
279 well; do not leave it to the documentation maintainers. | |
2200 | 280 |
18841 | 281 |
13288 | 282 9. Do NOT commit to code actively maintained by others without permission. Send |
283 a patch to mplayer-dev-eng instead. | |
12107
bc89ddda34b8
Developers should subscribe to mplayer-cvslog, mention mplayer-docs.
diego
parents:
12099
diff
changeset
|
284 |
18841 | 285 |
18660 | 286 10. Subscribe to the mplayer-cvslog mailing list. The diffs of all commits |
12107
bc89ddda34b8
Developers should subscribe to mplayer-cvslog, mention mplayer-docs.
diego
parents:
12099
diff
changeset
|
287 are sent there and reviewed by all the other developers. Bugs and possible |
bc89ddda34b8
Developers should subscribe to mplayer-cvslog, mention mplayer-docs.
diego
parents:
12099
diff
changeset
|
288 improvements or general questions regarding commits are discussed there. We |
bc89ddda34b8
Developers should subscribe to mplayer-cvslog, mention mplayer-docs.
diego
parents:
12099
diff
changeset
|
289 expect you to react if problems with your code are uncovered. |
12024 | 290 |
18841 | 291 |
13288 | 292 11. Update the documentation if you change behavior or add features. If you are |
293 unsure how best to do this, send a patch to mplayer-docs, the documentation | |
294 maintainers will review and commit your stuff. | |
295 | |
18841 | 296 |
20783
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
297 12. Always send a patch to the mplayer-dev-eng mailing list before committing |
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
298 if you suspect that the change is going to be controversial. Based on past |
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
299 experience, these changes are likely to be controversial: |
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
300 - feature removal, even if obsolete |
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
301 - changes to "special" output messages (like the "Core dumped ;)" message) |
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
302 - verbosity changes from default (info) level |
22510 | 303 - changes to "historical" parts of docs and web pages |
20783
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
304 - use of internal or external libraries |
26937
e4086b953952
Add reverting commits to the list of potentially controversial actions.
diego
parents:
25395
diff
changeset
|
305 - reverting commits from other developers |
26944 | 306 - making the spelling of words consistent without actually correcting |
26943
80b3d1a37474
List more actions which have proven controversial in the past.
michael
parents:
26937
diff
changeset
|
307 any spelling errors. |
20783
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
308 |
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
309 |
25395 | 310 13. Try to keep important discussions and requests (also) on the mplayer-dev-eng |
311 mailing list, so that all developers can benefit from them. | |
20783
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
312 IRC is good for quick discussions, but nobody is there 24/7. |
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
313 |
dc1a1ff6c7d9
Updated for controversial changes and irc-only decisions
rtogni
parents:
19662
diff
changeset
|
314 |
29369
b95c20d423b3
Add a section about handling external code to the policy.
diego
parents:
28777
diff
changeset
|
315 14. MPlayer contains some external code that is partly patched, partly copied |
b95c20d423b3
Add a section about handling external code to the policy.
diego
parents:
28777
diff
changeset
|
316 verbatim (see Copyright for details). This code should not be modified |
b95c20d423b3
Add a section about handling external code to the policy.
diego
parents:
28777
diff
changeset
|
317 unless there is a very good reason. Much of it is maintained upstream. |
b95c20d423b3
Add a section about handling external code to the policy.
diego
parents:
28777
diff
changeset
|
318 We should be good open source citizens, submit our fixes upstream and keep |
b95c20d423b3
Add a section about handling external code to the policy.
diego
parents:
28777
diff
changeset
|
319 the differences as small as possible. |
b95c20d423b3
Add a section about handling external code to the policy.
diego
parents:
28777
diff
changeset
|
320 If you have to modify external code, do not forget to update the diff file |
b95c20d423b3
Add a section about handling external code to the policy.
diego
parents:
28777
diff
changeset
|
321 with our local changes. |
b95c20d423b3
Add a section about handling external code to the policy.
diego
parents:
28777
diff
changeset
|
322 |
b95c20d423b3
Add a section about handling external code to the policy.
diego
parents:
28777
diff
changeset
|
323 |
31137 | 324 15. Use K&R style with 4 space indentation, no tabs and no trailing whitespace. |
325 Unnecessary braces should be avoided. This policy applies to new files. In | |
326 existing files that don't follow K&R style, try to respect the surrounding | |
327 style, but in doubt, go for K&R. | |
328 | |
329 | |
12099 | 330 Also read DOCS/tech/patches.txt !!!! |
5415 | 331 |
7904
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
332 We think our rules are not too hard. If you have comments, contact us. |
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
333 |
98168d30f67d
Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents:
5415
diff
changeset
|
334 |
3258 | 335 |
18827 | 336 III. Beginners Guide |
3258 | 337 ==================== |
18828 | 338 |
339 The typical flow of development would be: | |
340 | |
341 1. Check out the source: | |
342 | |
343 svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ devel | |
344 | |
18841 | 345 |
18828 | 346 2. Make your changes. |
347 | |
18841 | 348 |
18828 | 349 3. Create a patch: |
350 | |
18840 | 351 Run 'svn diff' from the root of the source tree, like this: |
18828 | 352 |
353 cd devel | |
354 svn diff > ../my_changes.patch | |
355 | |
356 If you have made several changes, but only want to submit one for review | |
357 by other developers, you can specify the filename(s), for example: | |
358 | |
359 svn diff mplayer.c > ../major_cleanup.patch | |
360 | |
18841 | 361 |
18828 | 362 4. Check the patch: |
363 | |
364 Check out another, clean source tree and verify your patch: | |
365 | |
366 svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ clean | |
367 cd clean | |
368 patch -p0 --dry-run < ../my_changes.patch | |
369 | |
370 If there are no errors, you can apply your patch: | |
371 | |
372 patch -p0 < ../my_changes.patch | |
373 | |
374 After that, verify that MPlayer still builds correctly with your patch | |
375 applied. Also, be sure that your patch meets our policy as described in | |
376 section II, specifically rules 1 to 6, before you continue submitting | |
377 the patch. | |
378 | |
18841 | 379 |
18828 | 380 5. Submit the patch: |
381 | |
382 Send an e-mail to the mplayer-dev-eng mailing list. Describe what your | |
383 patch does and why, and attach the patch file for review by others. | |
384 | |
18841 | 385 |
18828 | 386 6. During the review process, incorporate all suggested fixes. Go to step 2 |
387 repeatedly until there is nothing more to do for step 6. Of course, if | |
388 you don't agree with certain suggestions, things can be discussed on | |
389 the mailing list in a polite manner. | |
390 | |
18841 | 391 |
18828 | 392 7. Commit the patch: |
393 | |
394 If your patch is accepted, double check if your source tree contains the | |
18840 | 395 most recent version of your patch with 'svn diff'! After verifying that |
396 you met these conditions, commit with: | |
18828 | 397 |
18840 | 398 svn commit <filename(s)> |
18828 | 399 |
400 Go to step 2 ad infinitum until MPlayer is the perfect media player ;) | |
401 | |
18841 | 402 |
18828 | 403 Note: If you are listed as the maintainer for a particular piece of code, |
404 you can skip step 5 and 6 if your patch _only_ applies to the code you | |
405 maintain. If it touches other code or is otherwise very intrusive, please | |
406 post it to mplayer-dev-eng first. |