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