051495d346935dbcb756f2a09994630b5b512918
[privoxy.git] / doc / webserver / developer-manual / cvs.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
2 <HTML
3 ><HEAD
4 ><TITLE
5 >The CVS Repository</TITLE
6 ><META
7 NAME="GENERATOR"
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
9 REL="HOME"
10 TITLE="Privoxy Developer Manual"
11 HREF="index.html"><LINK
12 REL="PREVIOUS"
13 TITLE="Introduction"
14 HREF="introduction.html"><LINK
15 REL="NEXT"
16 TITLE="Documentation Guidelines"
17 HREF="documentation.html"><LINK
18 REL="STYLESHEET"
19 TYPE="text/css"
20 HREF="../p_doc.css"></HEAD
21 ><BODY
22 CLASS="SECT1"
23 BGCOLOR="#EEEEEE"
24 TEXT="#000000"
25 LINK="#0000FF"
26 VLINK="#840084"
27 ALINK="#0000FF"
28 ><DIV
29 CLASS="NAVHEADER"
30 ><TABLE
31 SUMMARY="Header navigation table"
32 WIDTH="100%"
33 BORDER="0"
34 CELLPADDING="0"
35 CELLSPACING="0"
36 ><TR
37 ><TH
38 COLSPAN="3"
39 ALIGN="center"
40 >Privoxy Developer Manual</TH
41 ></TR
42 ><TR
43 ><TD
44 WIDTH="10%"
45 ALIGN="left"
46 VALIGN="bottom"
47 ><A
48 HREF="introduction.html"
49 ACCESSKEY="P"
50 >Prev</A
51 ></TD
52 ><TD
53 WIDTH="80%"
54 ALIGN="center"
55 VALIGN="bottom"
56 ></TD
57 ><TD
58 WIDTH="10%"
59 ALIGN="right"
60 VALIGN="bottom"
61 ><A
62 HREF="documentation.html"
63 ACCESSKEY="N"
64 >Next</A
65 ></TD
66 ></TR
67 ></TABLE
68 ><HR
69 ALIGN="LEFT"
70 WIDTH="100%"></DIV
71 ><DIV
72 CLASS="SECT1"
73 ><H1
74 CLASS="SECT1"
75 ><A
76 NAME="CVS"
77 >2. The CVS Repository</A
78 ></H1
79 ><P
80 >      If you become part of the active development team, you will eventually
81       need write access to our holy grail, the CVS repository. One of the 
82       team members will need to set this up for you. Please read
83       this chapter completely before accessing via CVS.
84     </P
85 ><DIV
86 CLASS="SECT2"
87 ><H2
88 CLASS="SECT2"
89 ><A
90 NAME="CVSACCESS"
91 >2.1. Access to CVS</A
92 ></H2
93 ><P
94 >        The project's CVS repository is hosted on
95         <A
96 HREF="http://sourceforge.net/"
97 TARGET="_top"
98 >SourceForge.</A
99 >
100         Please refer to the chapters 6 and 7 in
101         <A
102 HREF="http://sourceforge.net/docman/?group_id=1"
103 TARGET="_top"
104 >SF's site
105         documentation</A
106 > for the technical access details for your
107         operating system. For historical reasons, the CVS server is
108         called <TT
109 CLASS="LITERAL"
110 >ijbswa.cvs.sourceforge.net</TT
111 >, the repository is
112         called <TT
113 CLASS="LITERAL"
114 >ijbswa</TT
115 >, and the source tree module is called
116         <TT
117 CLASS="LITERAL"
118 >current</TT
119 >.
120       </P
121 ></DIV
122 ><DIV
123 CLASS="SECT2"
124 ><H2
125 CLASS="SECT2"
126 ><A
127 NAME="CVSBRANCHES"
128 >2.2. Branches</A
129 ></H2
130 ><P
131 >       Within the CVS repository, there are modules and branches. As
132        mentioned, the sources are in the <TT
133 CLASS="LITERAL"
134 >current</TT
135 >
136        <SPAN
137 CLASS="QUOTE"
138 >"module"</SPAN
139 >. Other modules are present for platform specific
140        issues. There is a webview of the CVS hierarchy at <A
141 HREF="http://ijbswa.cvs.sourceforge.net/ijbswa/"
142 TARGET="_top"
143 >http://ijbswa.cvs.sourceforge.net/ijbswa/</A
144 >,
145        which might help with visualizing how these pieces fit together.
146      </P
147 ><P
148 >       Branches are used to fork a sub-development path from the main trunk.
149        Within the <TT
150 CLASS="LITERAL"
151 >current</TT
152 > module where the sources are, there
153        is always at least one <SPAN
154 CLASS="QUOTE"
155 >"branch"</SPAN
156 > from the main trunk
157        devoted to a stable release series. The main trunk is where active
158        development takes place for the next stable series (e.g. 3.2.x).
159        So just prior to each stable series (e.g. 3.0.x), a branch is created
160        just for stable series releases (e.g. 3.0.0 -&#62; 3.0.1 -&#62; 3.0.2, etc).
161        Once the initial stable release of any stable branch has taken place,
162        this branch is <SPAN
163 CLASS="emphasis"
164 ><I
165 CLASS="EMPHASIS"
166 >only used for bugfixes</I
167 ></SPAN
168 >, which have
169        had prior testing before being committed to CVS. (See <A
170 HREF="newrelease.html#VERSIONNUMBERS"
171 >Version Numbers</A
172 > below for details on
173        versioning.)
174      </P
175 ><P
176 >      At one time there were two distinct branches: stable and unstable. The
177       more drastic changes were to be in the unstable branch. These branches 
178       have now been merged to minimize time and effort of maintaining two 
179       branches.
180      </P
181 ></DIV
182 ><DIV
183 CLASS="SECT2"
184 ><H2
185 CLASS="SECT2"
186 ><A
187 NAME="CVSCOMMIT"
188 >2.3. CVS Commit Guidelines</A
189 ></H2
190 ><P
191 >        The source tree is the heart of every software project. Every effort must
192         be made to ensure that it is readable, compilable and consistent at all
193         times. There are differing guidelines for the stable branch and the
194         main development trunk, and we ask anyone with CVS access to strictly
195         adhere to the following guidelines:
196       </P
197 ><P
198 >       Basic Guidelines, for all branches:
199       </P
200 ><P
201 >        <P
202 ></P
203 ><UL
204 ><LI
205 ><P
206 >            Please don't commit even 
207             a small change without testing it thoroughly first. When we're
208             close to a public release, ask a fellow developer to review your 
209             changes.
210           </P
211 ></LI
212 ><LI
213 ><P
214 >            Your commit message should give a concise overview of <SPAN
215 CLASS="emphasis"
216 ><I
217 CLASS="EMPHASIS"
218 >what you
219             changed</I
220 ></SPAN
221 > (no big details) and <SPAN
222 CLASS="emphasis"
223 ><I
224 CLASS="EMPHASIS"
225 >why you changed it</I
226 ></SPAN
227 >
228             Just check previous messages for good examples.
229           </P
230 ></LI
231 ><LI
232 ><P
233 >            Don't use the same message on multiple files, unless it equally applies to
234             all those files.
235           </P
236 ></LI
237 ><LI
238 ><P
239 >            If your changes span multiple files, and the code won't recompile unless
240             all changes are committed (e.g. when changing the signature of a function),
241             then commit all files one after another, without long delays in between.
242             If necessary, prepare the commit messages in advance.
243           </P
244 ></LI
245 ><LI
246 ><P
247 >            Before changing things on CVS, make sure that your changes are in line
248             with the team's general consensus on what should be done.
249           </P
250 ></LI
251 ><LI
252 ><P
253 >            Note that near a major public release, we get more cautious.
254             There is always the possibility to submit a patch to the <A
255 HREF="http://sourceforge.net/tracker/?atid=311118&group_id=11118&func=browse"
256 TARGET="_top"
257 >patch
258             tracker</A
259 > instead.
260           </P
261 ></LI
262 ></UL
263 >
264       </P
265 ></DIV
266 ></DIV
267 ><DIV
268 CLASS="NAVFOOTER"
269 ><HR
270 ALIGN="LEFT"
271 WIDTH="100%"><TABLE
272 SUMMARY="Footer navigation table"
273 WIDTH="100%"
274 BORDER="0"
275 CELLPADDING="0"
276 CELLSPACING="0"
277 ><TR
278 ><TD
279 WIDTH="33%"
280 ALIGN="left"
281 VALIGN="top"
282 ><A
283 HREF="introduction.html"
284 ACCESSKEY="P"
285 >Prev</A
286 ></TD
287 ><TD
288 WIDTH="34%"
289 ALIGN="center"
290 VALIGN="top"
291 ><A
292 HREF="index.html"
293 ACCESSKEY="H"
294 >Home</A
295 ></TD
296 ><TD
297 WIDTH="33%"
298 ALIGN="right"
299 VALIGN="top"
300 ><A
301 HREF="documentation.html"
302 ACCESSKEY="N"
303 >Next</A
304 ></TD
305 ></TR
306 ><TR
307 ><TD
308 WIDTH="33%"
309 ALIGN="left"
310 VALIGN="top"
311 >Introduction</TD
312 ><TD
313 WIDTH="34%"
314 ALIGN="center"
315 VALIGN="top"
316 >&nbsp;</TD
317 ><TD
318 WIDTH="33%"
319 ALIGN="right"
320 VALIGN="top"
321 >Documentation Guidelines</TD
322 ></TR
323 ></TABLE
324 ></DIV
325 ></BODY
326 ></HTML
327 >