/[gentoo]/xml/htdocs/proj/en/glep/glep-0036.html
Gentoo

Contents of /xml/htdocs/proj/en/glep/glep-0036.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.7 - (show annotations) (download) (as text)
Thu Jan 25 03:26:26 2007 UTC (7 years, 6 months ago) by antarus
Branch: MAIN
Changes since 1.6: +3 -3 lines
File MIME type: text/html
Fix headers in all current gleps

1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4 <!--
5 This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
6 PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
7 to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8 -->
9 <head>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 <title>GLEP 36 -- Subversion/CVS for Gentoo Hosted Projects</title>
13 <style type="text/css">
14
15 /*
16 :Author: David Goodger
17 :Contact: goodger@users.sourceforge.net
18 :date: $Date: 2006/10/10 20:25:14 $
19 :version: $Revision: 1.6 $
20 :copyright: This stylesheet has been placed in the public domain.
21
22 Default cascading style sheet for the PEP HTML output of Docutils.
23 */
24
25 .first {
26 margin-top: 0 }
27
28 .last {
29 margin-bottom: 0 }
30
31 .navigation {
32 width: 100% ;
33 background: #cc99ff ;
34 margin-top: 0px ;
35 margin-bottom: 0px }
36
37 .navigation .navicon {
38 width: 150px ;
39 height: 35px }
40
41 .navigation .textlinks {
42 padding-left: 1em ;
43 text-align: left }
44
45 .navigation td, .navigation th {
46 padding-left: 0em ;
47 padding-right: 0em ;
48 vertical-align: middle }
49
50 .rfc2822 {
51 margin-top: 0.5em ;
52 margin-left: 0.5em ;
53 margin-right: 0.5em ;
54 margin-bottom: 0em }
55
56 .rfc2822 td {
57 text-align: left }
58
59 .rfc2822 th.field-name {
60 text-align: right ;
61 font-family: sans-serif ;
62 padding-right: 0.5em ;
63 font-weight: bold ;
64 margin-bottom: 0em }
65
66 a.toc-backref {
67 text-decoration: none ;
68 color: black }
69
70 body {
71 margin: 0px ;
72 margin-bottom: 1em ;
73 padding: 0px }
74
75 dd {
76 margin-bottom: 0.5em }
77
78 div.section {
79 margin-left: 1em ;
80 margin-right: 1em ;
81 margin-bottom: 1.5em }
82
83 div.section div.section {
84 margin-left: 0em ;
85 margin-right: 0em ;
86 margin-top: 1.5em }
87
88 div.abstract {
89 margin: 2em 5em }
90
91 div.abstract p.topic-title {
92 font-weight: bold ;
93 text-align: center }
94
95 div.attention, div.caution, div.danger, div.error, div.hint,
96 div.important, div.note, div.tip, div.warning {
97 margin: 2em ;
98 border: medium outset ;
99 padding: 1em }
100
101 div.attention p.admonition-title, div.caution p.admonition-title,
102 div.danger p.admonition-title, div.error p.admonition-title,
103 div.warning p.admonition-title {
104 color: red ;
105 font-weight: bold ;
106 font-family: sans-serif }
107
108 div.hint p.admonition-title, div.important p.admonition-title,
109 div.note p.admonition-title, div.tip p.admonition-title {
110 font-weight: bold ;
111 font-family: sans-serif }
112
113 div.figure {
114 margin-left: 2em }
115
116 div.footer, div.header {
117 font-size: smaller }
118
119 div.footer {
120 margin-left: 1em ;
121 margin-right: 1em }
122
123 div.system-messages {
124 margin: 5em }
125
126 div.system-messages h1 {
127 color: red }
128
129 div.system-message {
130 border: medium outset ;
131 padding: 1em }
132
133 div.system-message p.system-message-title {
134 color: red ;
135 font-weight: bold }
136
137 div.topic {
138 margin: 2em }
139
140 h1 {
141 font-family: sans-serif ;
142 font-size: large }
143
144 h2 {
145 font-family: sans-serif ;
146 font-size: medium }
147
148 h3 {
149 font-family: sans-serif ;
150 font-size: small }
151
152 h4 {
153 font-family: sans-serif ;
154 font-style: italic ;
155 font-size: small }
156
157 h5 {
158 font-family: sans-serif;
159 font-size: x-small }
160
161 h6 {
162 font-family: sans-serif;
163 font-style: italic ;
164 font-size: x-small }
165
166 .section hr {
167 width: 75% }
168
169 ol.simple, ul.simple {
170 margin-bottom: 1em }
171
172 ol.arabic {
173 list-style: decimal }
174
175 ol.loweralpha {
176 list-style: lower-alpha }
177
178 ol.upperalpha {
179 list-style: upper-alpha }
180
181 ol.lowerroman {
182 list-style: lower-roman }
183
184 ol.upperroman {
185 list-style: upper-roman }
186
187 p.caption {
188 font-style: italic }
189
190 p.credits {
191 font-style: italic ;
192 font-size: smaller }
193
194 p.label {
195 white-space: nowrap }
196
197 p.topic-title {
198 font-family: sans-serif ;
199 font-weight: bold }
200
201 pre.line-block {
202 font-family: serif ;
203 font-size: 100% }
204
205 pre.literal-block, pre.doctest-block {
206 margin-left: 2em ;
207 margin-right: 2em ;
208 background-color: #eeeeee }
209
210 span.classifier {
211 font-family: sans-serif ;
212 font-style: oblique }
213
214 span.classifier-delimiter {
215 font-family: sans-serif ;
216 font-weight: bold }
217
218 span.interpreted {
219 font-family: sans-serif }
220
221 span.option-argument {
222 font-style: italic }
223
224 span.pre {
225 white-space: pre }
226
227 span.problematic {
228 color: red }
229
230 table {
231 margin-top: 0.5em ;
232 margin-bottom: 0.5em }
233
234 td, th {
235 padding-left: 0.5em ;
236 padding-right: 0.5em ;
237 vertical-align: top }
238
239 td.num {
240 text-align: right }
241
242 th.field-name {
243 font-weight: bold ;
244 text-align: left ;
245 white-space: nowrap }
246
247 h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
248 font-size: 100% }
249
250 tt {
251 background-color: #eeeeee }
252
253 ul.auto-toc {
254 list-style-type: none }
255
256 </style>
257 </head>
258 <body bgcolor="white">
259 <table class="navigation" cellpadding="0" cellspacing="0"
260 width="100%" border="0">
261 <tr><td class="navicon" width="150" height="35">
262 <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
263 <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
264 border="0" width="150" height="35" /></a></td>
265 <td class="textlinks" align="left">
266 [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
267 [<b><a href="http://www.gentoo.org/proj/en/glep/">GLEP Index</a></b>]
268 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0036.txt">GLEP Source</a></b>]
269 </td></tr></table>
270 <table class="rfc2822 docutils field-list" frame="void" rules="none">
271 <col class="field-name" />
272 <col class="field-body" />
273 <tbody valign="top">
274 <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">36</td>
275 </tr>
276 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Subversion/CVS for Gentoo Hosted Projects</td>
277 </tr>
278 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.6</td>
279 </tr>
280 <tr class="field"><th class="field-name">Author:</th><td class="field-body">Aaron Walker &lt;ka0ttic&#32;&#97;t&#32;gentoo.org&gt;</td>
281 </tr>
282 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0036.txt?cvsroot=gentoo">2005/11/07 22:26:59</a></td>
283 </tr>
284 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Final</td>
285 </tr>
286 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
287 </tr>
288 <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0002.html">text/x-rst</a></td>
289 </tr>
290 <tr class="field"><th class="field-name">Created:</th><td class="field-body">11-Nov-2004</td>
291 </tr>
292 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">13-Mar-2005, 21-Mar-2005</td>
293 </tr>
294 </tbody>
295 </table>
296 <hr />
297 <div class="contents topic">
298 <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
299 <ul class="simple">
300 <li><a class="reference" href="#abstract" id="id11" name="id11">Abstract</a></li>
301 <li><a class="reference" href="#motivation" id="id12" name="id12">Motivation</a></li>
302 <li><a class="reference" href="#specification" id="id13" name="id13">Specification</a></li>
303 <li><a class="reference" href="#backwards-compatibility" id="id14" name="id14">Backwards Compatibility</a></li>
304 <li><a class="reference" href="#references" id="id15" name="id15">References</a></li>
305 <li><a class="reference" href="#copyright" id="id16" name="id16">Copyright</a></li>
306 </ul>
307 </div>
308 <div class="section">
309 <h1><a class="toc-backref" href="#id11" id="abstract" name="abstract">Abstract</a></h1>
310 <p>Allow maintainers of Gentoo hosted projects to choose between Subversion/CVS.</p>
311 </div>
312 <div class="section">
313 <h1><a class="toc-backref" href="#id12" id="motivation" name="motivation">Motivation</a></h1>
314 <p>By offering a choice of version control systems, developers who want or need
315 certain features, can choose which one suits them or their project the best.</p>
316 <p>In addition, there are quite a few projects that should be Gentoo hosted, but
317 are hosted elsewhere due to the fact that Subversion is not currently offered.
318 Examples include the app-vim/gentoo-syntax package (<a class="footnote-reference" href="#id6" id="id1" name="id1">[1]</a>), and
319 app-shells/gentoo-bashcomp (<a class="footnote-reference" href="#id7" id="id2" name="id2">[2]</a>).</p>
320 <p>Subversion has many advantages over CVS, including changesets, directory
321 versioning, atomic commits, versioned metadata, and more efficient branching
322 and tagging (<a class="footnote-reference" href="#id8" id="id3" name="id3">[3]</a>). Despite these advantages, many developers feel that
323 Subversion is not yet ready for the main tree due to scaling issues.</p>
324 </div>
325 <div class="section">
326 <h1><a class="toc-backref" href="#id13" id="specification" name="specification">Specification</a></h1>
327 <p>The following steps describe, in detail, the process of setting up the
328 Subversion svnserve daemon (over SSH) and creating new repositories.</p>
329 <p>One repository should be created per project. Reasons for this include easier
330 control over who has access, performance (checking out one big repository
331 takes many times longer), ease-of-use (branching and merging are more difficult
332 with one big repository), and meaningful revision numbers (since Subversion
333 uses repository-global revision numbers, revision numbers for project A will
334 increase on every commit even if no changes are made to project A).</p>
335 <p>For preexisting CVS repositories, instructions on converting (<a class="footnote-reference" href="#id9" id="id4" name="id4">[4]</a>) are
336 already available in addition to the cvs2svn documentation itself (<a class="footnote-reference" href="#id10" id="id5" name="id5">[5]</a>).</p>
337 <ol class="arabic">
338 <li><p class="first">Install dev-util/subversion:</p>
339 <pre class="literal-block">
340 $ emerge subversion
341 </pre>
342 </li>
343 <li><p class="first">Write wrapper script for svnserve:</p>
344 <pre class="literal-block">
345 $ $EDITOR /usr/local/bin/svnserve-ssh &amp;&amp; chmod +x \
346 &gt; /usr/local/bin/svnserve-ssh
347
348 #!/bin/sh
349 umask 002
350 exec /usr/bin/svnserve &quot;$&#64;&quot;
351 </pre>
352 </li>
353 <li><p class="first">Modify the svnserve rc script:</p>
354 <pre class="literal-block">
355 $ cp /etc/init.d/svnserve /etc/init.d/svnserve-ssh
356 $ sed -i 's:/usr/bin/svnserve:/usr/local/bin/svnserve-ssh:' \
357 &gt; /etc/init.d/svnserve-ssh
358 </pre>
359 </li>
360 <li><p class="first">Edit svnserve rc config:</p>
361 <pre class="literal-block">
362 $ ln -s /etc/init.d/svnserve /etc/init.d/svnserve-ssh
363 $ $EDITOR /etc/init.d/svnserve
364 </pre>
365 <p>SVNSERVE_OPTS=&quot;--root=/var/svnroot&quot;
366 SVNSERVE_USER=&quot;svn&quot;
367 SVNSERVE_GROUP=&quot;svn&quot;</p>
368 </li>
369 <li><p class="first">Add svn group and user:</p>
370 <pre class="literal-block">
371 $ groupadd svn
372 $ useradd svn -d /var/svnroot -s /bin/false -g svn
373 </pre>
374 </li>
375 <li><p class="first">Create the directory that will hold the repositories:</p>
376 <pre class="literal-block">
377 $ mkdir -p /var/svnroot/conf
378 </pre>
379 </li>
380 <li><p class="first">To create new repositories, simply run:</p>
381 <pre class="literal-block">
382 $ svnadmin create --fs-type fsfs /var/svnroot/&lt;repos&gt;
383 </pre>
384 </li>
385 <li><p class="first">Make sure newly created/converted repositories have correct permissions. Of course, Infra might want to do this differently:</p>
386 <pre class="literal-block">
387 $ chown -Rf svn:users /var/svnroot/&lt;repos&gt;
388 $ chmod -Rf 775 /var/svnroot/&lt;repos&gt;
389 </pre>
390 </li>
391 <li><p class="first">Start it up:</p>
392 <pre class="literal-block">
393 $ /etc/init.d/svnserve-ssh start
394 $ rc-update add svnserve-ssh default
395 </pre>
396 </li>
397 </ol>
398 </div>
399 <div class="section">
400 <h1><a class="toc-backref" href="#id14" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
401 <p>Offering a choice between Subversion and CVS should in no way cause any
402 backwards compatibility issues. Those developers who prefer to use CVS can
403 continue to do so without any ill effects.</p>
404 </div>
405 <div class="section">
406 <h1><a class="toc-backref" href="#id15" id="references" name="references">References</a></h1>
407 <table class="docutils footnote" frame="void" id="id6" rules="none">
408 <colgroup><col class="label" /><col /></colgroup>
409 <tbody valign="top">
410 <tr><td class="label"><a class="fn-backref" href="#id1" name="id6">[1]</a></td><td>app-vim/gentoo-syntax
411 <a class="reference" href="http://developer.berlios.de/projects/gentoo-syntax/">http://developer.berlios.de/projects/gentoo-syntax/</a></td></tr>
412 </tbody>
413 </table>
414 <table class="docutils footnote" frame="void" id="id7" rules="none">
415 <colgroup><col class="label" /><col /></colgroup>
416 <tbody valign="top">
417 <tr><td class="label"><a class="fn-backref" href="#id2" name="id7">[2]</a></td><td>app-shells/gentoo-bashcomp
418 <a class="reference" href="http://developer.berlios.de/projects/gentoo-bashcomp/">http://developer.berlios.de/projects/gentoo-bashcomp/</a></td></tr>
419 </tbody>
420 </table>
421 <table class="docutils footnote" frame="void" id="id8" rules="none">
422 <colgroup><col class="label" /><col /></colgroup>
423 <tbody valign="top">
424 <tr><td class="label"><a class="fn-backref" href="#id3" name="id8">[3]</a></td><td>Version Control with Subversion
425 <a class="reference" href="http://svnbook.red-bean.com/en/1.0/ch01s03.html">http://svnbook.red-bean.com/en/1.0/ch01s03.html</a></td></tr>
426 </tbody>
427 </table>
428 <table class="docutils footnote" frame="void" id="id9" rules="none">
429 <colgroup><col class="label" /><col /></colgroup>
430 <tbody valign="top">
431 <tr><td class="label"><a class="fn-backref" href="#id4" name="id9">[4]</a></td><td>Migration of Gentoo Repositories from CVS to Subversion
432 <a class="reference" href="http://dev.gentoo.org/~trapni/CVS2SVN.MIGRATION">http://dev.gentoo.org/~trapni/CVS2SVN.MIGRATION</a></td></tr>
433 </tbody>
434 </table>
435 <table class="docutils footnote" frame="void" id="id10" rules="none">
436 <colgroup><col class="label" /><col /></colgroup>
437 <tbody valign="top">
438 <tr><td class="label"><a class="fn-backref" href="#id5" name="id10">[5]</a></td><td>cvs2svn Documentation
439 <a class="reference" href="http://cvs2svn.tigris.org/cvs2svn.html">http://cvs2svn.tigris.org/cvs2svn.html</a></td></tr>
440 </tbody>
441 </table>
442 </div>
443 <div class="section">
444 <h1><a class="toc-backref" href="#id16" id="copyright" name="copyright">Copyright</a></h1>
445 <p>This document has been placed in the public domain.</p>
446 </div>
447
448 </div>
449 <div class="footer">
450 <hr class="footer" />
451 <a class="reference" href="glep-0036.txt">View document source</a>.
452 Generated on: 2006-10-10 20:23 UTC.
453 Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
454
455 </div>
456 </body>
457 </html>

  ViewVC Help
Powered by ViewVC 1.1.20