annotate DOCS/tech/svn-howto.txt @ 18828:55ebe20fadbc

Add new Subversion beginners guide
author ivo
date Mon, 26 Jun 2006 19:04:59 +0000
parents 67f847c438bd
children 3b42c599ea09
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
1
18660
7548a6a100da CVS --> Subversion
diego
parents: 18136
diff changeset
2 About Subversion write access:
7548a6a100da CVS --> Subversion
diego
parents: 18136
diff changeset
3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
4
18705
9a731c61c870 CVS --> Subversion
ivo
parents: 18660
diff changeset
5 Before everything else, you should know how to use Subversion properly.
9a731c61c870 CVS --> Subversion
ivo
parents: 18660
diff changeset
6 Subversion comes with some documentation.
11395
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
7
18705
9a731c61c870 CVS --> Subversion
ivo
parents: 18660
diff changeset
8 svn help
9a731c61c870 CVS --> Subversion
ivo
parents: 18660
diff changeset
9 man svn
9a731c61c870 CVS --> Subversion
ivo
parents: 18660
diff changeset
10 info svn
11395
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
11
18705
9a731c61c870 CVS --> Subversion
ivo
parents: 18660
diff changeset
12 are a good start. The most comprehensive manual is the book "Version Control
9a731c61c870 CVS --> Subversion
ivo
parents: 18660
diff changeset
13 with Subversion" by Ben Collins-Sussman, Brian W. Fitzpatrick and C. Michael
9a731c61c870 CVS --> Subversion
ivo
parents: 18660
diff changeset
14 Pilato. It can be viewed online at
11395
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
15
18705
9a731c61c870 CVS --> Subversion
ivo
parents: 18660
diff changeset
16 http://svnbook.org/
11395
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
17
18705
9a731c61c870 CVS --> Subversion
ivo
parents: 18660
diff changeset
18 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
19
18705
9a731c61c870 CVS --> Subversion
ivo
parents: 18660
diff changeset
20 http://subversion.tigris.org/
11395
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
21
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
22 Consult these resources whenever you have problems, they are quite exhaustive.
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
23 What follows now are MPlayer specific guidelines.
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
24
7904
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
25
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
26 I. TECH SIDE:
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
27 =============
7904
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
28
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
29 1. Checking out development source tree:
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
30
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
31 svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
32
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
33 2. Updating source tree to latest revision:
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
34
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
35 svn update
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
36
7904
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
37 3. Committing changes:
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
38
18767
a301e6ca6aca minor Subversion-related changes
diego
parents: 18764
diff changeset
39 svn update
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
40 svn commit --username USERNAME filename(s)
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
41
7904
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
42 Do not use comments such as: "bug fix." or "files changed" or "dunno".
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
43 You don't have to include the filename in the comment, as comments are linked
12099
8dedd440c31c Commit independent changes separately.
diego
parents: 12025
diff changeset
44 to files. If you have made several independent changes, commit them
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
45 separately, not at the same time. You will be prompted for a comment in an
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
46 editor, which is either specified by --editor-cmd on the command line, set
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
47 in your personal configuration file (~/.subversion/config) or set by one of
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
48 the following environment variables: SVN_EDITOR, VISUAL or EDITOR. When
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
49 prompted for a password, type the password you got assigned by the Subversion
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
50 server admin. By default, Subversion caches all authentication tokens. This
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
51 behaviour can be disabled by setting both 'store-passwords' and
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
52 'store-auth-creds' to "no" in ~/.subversion/config. You might need to remove
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
53 previous cache files, which are located in ~/.subversion/auth, by hand.
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
54
18767
a301e6ca6aca minor Subversion-related changes
diego
parents: 18764
diff changeset
55 4. Adding new files/directories:
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
56
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
57 svn add filename/dirname
18767
a301e6ca6aca minor Subversion-related changes
diego
parents: 18764
diff changeset
58 svn commit filename/dirname
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
59
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
60 5. Removing files:
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
61
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
62 svn delete filename
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
63 svn commit filename
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
64
7904
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
65 6. Checking changes:
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
66
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
67 svn diff filename(s)
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
68
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
69 Doublecheck your changes before committing to avoid trouble later on.
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
70 This way you will see if your patch has debug stuff or indentation
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
71 changes and you can fix it before committing and triggering flames.
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
72
7904
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
73 7. Checking changelog:
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
74
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
75 svn log filename(s)
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
76
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
77 You may also find viewvc, a web frontend for Subversion, helpful. It's often
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
78 more comfortable than using svn log and svn diff. Find it here:
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
79 http://svn.mplayerhq.hu/mplayer/trunk/
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
80
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
81 8. Renaming/moving files or content of files:
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
82
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
83 svn move source destination
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
84 svn commit source destination
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
85
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
86 Do not move or rename files before discussing it on the mplayer-dev-eng
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
87 mailing list first!
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
88
7904
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
89 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
90 reason and discuss it on the mplayer-dev-eng mailing list first. It will make
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
91 those changes untraceable!
5415
e9b15870e82f updates - thanks to Melanson...
arpi
parents: 4410
diff changeset
92
7904
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
93 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
94 so try to avoid them.
11395
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
95
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
96 9. Reverting broken commits
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
97
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
98 There is no Subversion equivalent of the 'cvs admin -o' command. Instead,
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
99 be very careful about what you commit! If somehow you broke something,
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
100 revert the changes locally and re-commit with a proper commit message.
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
101 You may want to use 'svn cat -r<revision> filename' to inspect an older
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
102 revision.
15227
167085fd11af 'cvs admin -o' is dangerous and should be handled with extra care.
diego
parents: 14856
diff changeset
103
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
104 10. Checking status of source tree
12025
124734dc7c66 Explain why 'cvs admin' should only be used on the last revision of a file.
diego
parents: 12024
diff changeset
105
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
106 svn status
11395
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
107
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
108 This will detect all the changes you made and list what actions will be
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
109 taken in case of a commit (Additions, Modifications, Deletions, et cetera).
11395
5484bc13e90a Some notes about general CVS documentation added, new 'cvs admin' section
diego
parents: 9537
diff changeset
110
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
111 11. Reverting local changes
14806
6abe4fb845ff mphq uses ssh.com, explain RSA key generation for it.
diego
parents: 14059
diff changeset
112
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
113 svn revert filename(s)
14806
6abe4fb845ff mphq uses ssh.com, explain RSA key generation for it.
diego
parents: 14059
diff changeset
114
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
115 In case you made a lot of local changes to a file and want to start over
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
116 with a fresh checkout of that file, you can use svn revert filename(s).
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
117 NOTE: This has nothing to do with reverting changes on the Subversion
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
118 server! It only reverts changes that were not committed yet. If you need
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
119 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
120
18764
5b89070daa50 add command for changing commit messages after the commit took place.
ivo
parents: 18706
diff changeset
121 12. Changing commit messages
5b89070daa50 add command for changing commit messages after the commit took place.
ivo
parents: 18706
diff changeset
122
5b89070daa50 add command for changing commit messages after the commit took place.
ivo
parents: 18706
diff changeset
123 svn propedit svn:log --revprop -r <revision>
5b89070daa50 add command for changing commit messages after the commit took place.
ivo
parents: 18706
diff changeset
124
5b89070daa50 add command for changing commit messages after the commit took place.
ivo
parents: 18706
diff changeset
125 If your commit message is too short or not explanatory enough, you can edit
5b89070daa50 add command for changing commit messages after the commit took place.
ivo
parents: 18706
diff changeset
126 it afterwards with svn propedit.
5b89070daa50 add command for changing commit messages after the commit took place.
ivo
parents: 18706
diff changeset
127
14856
7b1198123519 Arpi prefers root@mphq for CVS problems.
diego
parents: 14806
diff changeset
128 Contact the project admin <root at mplayerhq dot hu> if you have technical
18706
7fb537ba7c96 More CVS --> Subversion changes
ivo
parents: 18705
diff changeset
129 problems with the Subversion server.
7904
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
130
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
131
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
132
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
133 II. POLICY / RULES:
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
134 ===================
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
135
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
136 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
137 enabled code which breaks compilation or compiles but does not work.)
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
138 You can commit unfinished stuff (for testing etc), but it must be disabled
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
139 (#ifdef etc) by default so it does not interfere with other developers'
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
140 work.
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
141
7904
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
142 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
143 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
144 (portability, exploits compiler bugs, unusual environment etc) they will be
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
145 reported and eventually fixed.
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
146
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
147 3. Do not commit unrelated changes together, split them into self-contained
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
148 pieces.
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
149
17578
22632c215d59 Clarify policy on feature removal.
rathann
parents: 17054
diff changeset
150 4. Do not change behavior of the program (renaming options etc) or
17579
f1ce086b5eed Clarify feature removal policy: it must be approved on the mailing list.
rathann
parents: 17578
diff changeset
151 remove functionality from the code without approval in a discussion on
f1ce086b5eed Clarify feature removal policy: it must be approved on the mailing list.
rathann
parents: 17578
diff changeset
152 the mplayer-dev-eng mailing list.
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
153
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
154 5. Do not commit changes to the build system (Makefiles, configure script)
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
155 which change behaviour, defaults etc, without asking first. The same
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
156 applies to compiler warning fixes, trivial looking fixes and to code
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
157 maintained by other developers. We usually have a reason for doing things
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
158 the way we do. Send your changes as patches to the mplayer-dev-eng mailing
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
159 list, and if the code maintainers say OK, you may commit. This does not
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
160 apply to files you wrote and/or maintain.
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
161
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
162 6. We refuse source indentation and other cosmetic changes if they are mixed
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
163 with functional changes, such commits will be rejected and removed. Every
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
164 developer has his own indentation style, you should not change it. Of course
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
165 if you (re)write something, you can use your own style... (Many projects
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
166 force a given indentation style - we don't.) If you really need to make
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
167 indentation changes (try to avoid this), separate them strictly from real
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
168 changes.
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
169
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
170 NOTE: If you had to put if(){ .. } over a large (> 5 lines) chunk of code,
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
171 do NOT change the indentation of the inner part (don't move it to the right)!
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
172
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
173 7. Always fill out the commit log message. Describe in a few lines what you
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
174 changed and why. You can refer to mailing list postings if you fix a
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
175 particular bug. Comments such as "fixed!" or "Changed it." are unacceptable.
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
176
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
177 8. If you apply a patch by someone else, include the name and email address in
18660
7548a6a100da CVS --> Subversion
diego
parents: 18136
diff changeset
178 the log message. Since the mplayer-cvslog mailing list is publicly
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
179 archived you should add some spam protection to the email address. Send an
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
180 answer to mplayer-dev-eng (or wherever you got the patch from) saying that
17054
6ae6b30282da grammar fix on the documentation-updates note
wanderer
parents: 17051
diff changeset
181 you applied the patch. If the patch contains a documentation change, commit
6ae6b30282da grammar fix on the documentation-updates note
wanderer
parents: 17051
diff changeset
182 that as well; do not leave it to the documentation maintainers.
2200
1333f6184ad3 some ifno for cvs write owners
arpi
parents:
diff changeset
183
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
184 9. Do NOT commit to code actively maintained by others without permission. Send
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
185 a patch to mplayer-dev-eng instead.
12107
bc89ddda34b8 Developers should subscribe to mplayer-cvslog, mention mplayer-docs.
diego
parents: 12099
diff changeset
186
18660
7548a6a100da CVS --> Subversion
diego
parents: 18136
diff changeset
187 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
188 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
189 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
190 expect you to react if problems with your code are uncovered.
12024
f7980032d9ca whitespace cosmetics
diego
parents: 11679
diff changeset
191
13288
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
192 11. Update the documentation if you change behavior or add features. If you are
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
193 unsure how best to do this, send a patch to mplayer-docs, the documentation
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
194 maintainers will review and commit your stuff.
78d00bbba153 CVS policy updated as discussed on dev-eng.
diego
parents: 12904
diff changeset
195
12099
8dedd440c31c Commit independent changes separately.
diego
parents: 12025
diff changeset
196 Also read DOCS/tech/patches.txt !!!!
5415
e9b15870e82f updates - thanks to Melanson...
arpi
parents: 4410
diff changeset
197
7904
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
198 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
199
98168d30f67d Spellchecked, reworded, reformatted, small additions and corrections.
diego
parents: 5415
diff changeset
200
3258
d7bd32263398 Added a beginners guide
mswitch
parents: 3149
diff changeset
201
18827
67f847c438bd Remove old CVS beginners guide
ivo
parents: 18769
diff changeset
202 III. Beginners Guide
3258
d7bd32263398 Added a beginners guide
mswitch
parents: 3149
diff changeset
203 ====================
18828
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
204
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
205 The typical flow of development would be:
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
206
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
207 1. Check out the source:
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
208
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
209 svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ devel
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
210
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
211 2. Make your changes.
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
212
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
213 3. Create a patch:
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
214
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
215 Run svn diff from the root of the source tree, like this:
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
216
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
217 cd devel
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
218 svn diff > ../my_changes.patch
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
219
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
220 If you have made several changes, but only want to submit one for review
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
221 by other developers, you can specify the filename(s), for example:
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
222
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
223 svn diff mplayer.c > ../major_cleanup.patch
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
224
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
225 4. Check the patch:
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
226
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
227 Check out another, clean source tree and verify your patch:
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
228
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
229 svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ clean
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
230 cd clean
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
231 patch -p0 --dry-run < ../my_changes.patch
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
232
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
233 If there are no errors, you can apply your patch:
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
234
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
235 patch -p0 < ../my_changes.patch
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
236
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
237 After that, verify that MPlayer still builds correctly with your patch
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
238 applied. Also, be sure that your patch meets our policy as described in
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
239 section II, specifically rules 1 to 6, before you continue submitting
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
240 the patch.
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
241
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
242 5. Submit the patch:
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
243
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
244 Send an e-mail to the mplayer-dev-eng mailing list. Describe what your
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
245 patch does and why, and attach the patch file for review by others.
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
246
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
247 6. During the review process, incorporate all suggested fixes. Go to step 2
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
248 repeatedly until there is nothing more to do for step 6. Of course, if
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
249 you don't agree with certain suggestions, things can be discussed on
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
250 the mailing list in a polite manner.
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
251
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
252 7. Commit the patch:
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
253
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
254 If your patch is accepted, double check if your source tree contains the
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
255 most recent version of your patch with svn diff! After verifying that you
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
256 met these conditions, commit with:
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
257
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
258 svn commit filename(s)
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
259
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
260 Go to step 2 ad infinitum until MPlayer is the perfect media player ;)
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
261
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
262 Note: If you are listed as the maintainer for a particular piece of code,
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
263 you can skip step 5 and 6 if your patch _only_ applies to the code you
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
264 maintain. If it touches other code or is otherwise very intrusive, please
55ebe20fadbc Add new Subversion beginners guide
ivo
parents: 18827
diff changeset
265 post it to mplayer-dev-eng first.