/[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.6 - (hide annotations) (download) (as text)
Tue Oct 10 20:25:14 2006 UTC (8 years, 1 month ago) by g2boojum
Branch: MAIN
Changes since 1.5: +266 -23 lines
File MIME type: text/html
regenerate all .html files

1 g2boojum 1.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 g2boojum 1.6 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 g2boojum 1.1 <title>GLEP 36 -- Subversion/CVS for Gentoo Hosted Projects</title>
13 g2boojum 1.6 <style type="text/css">
14    
15     /*
16     :Author: David Goodger
17     :Contact: goodger@users.sourceforge.net
18     :date: $Date: 2003/06/02 17:03:08 $
19     :version: $Revision: 1.1 $
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 g2boojum 1.1 </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 g2boojum 1.6 [<b><a href="http://www.gentoo.org/peps">GLEP Index</a></b>]
268     [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0036.txt">GLEP Source</a></b>]
269 g2boojum 1.1 </td></tr></table>
270 ka0ttic 1.3 <table class="rfc2822 docutils field-list" frame="void" rules="none">
271 g2boojum 1.1 <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 g2boojum 1.6 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.6</td>
279 g2boojum 1.1 </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 g2boojum 1.6 <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 g2boojum 1.1 </tr>
284 kugelfang 1.4 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Final</td>
285 g2boojum 1.1 </tr>
286     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
287     </tr>
288 g2boojum 1.6 <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 g2boojum 1.1 </tr>
290     <tr class="field"><th class="field-name">Created:</th><td class="field-body">11-Nov-2004</td>
291     </tr>
292 ciaranm 1.5 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">13-Mar-2005, 21-Mar-2005</td>
293 g2boojum 1.1 </tr>
294     </tbody>
295     </table>
296     <hr />
297 g2boojum 1.6 <div class="contents topic">
298     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
299 g2boojum 1.1 <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 g2boojum 1.6 <div class="section">
309     <h1><a class="toc-backref" href="#id11" id="abstract" name="abstract">Abstract</a></h1>
310 g2boojum 1.1 <p>Allow maintainers of Gentoo hosted projects to choose between Subversion/CVS.</p>
311     </div>
312 g2boojum 1.6 <div class="section">
313     <h1><a class="toc-backref" href="#id12" id="motivation" name="motivation">Motivation</a></h1>
314 g2boojum 1.1 <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 g2boojum 1.2 app-shells/gentoo-bashcomp (<a class="footnote-reference" href="#id7" id="id2" name="id2">[2]</a>).</p>
320 g2boojum 1.6 <p>Subversion has many advantages over CVS, including changesets, directory
321 g2boojum 1.1 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 g2boojum 1.6 <div class="section">
326     <h1><a class="toc-backref" href="#id13" id="specification" name="specification">Specification</a></h1>
327 g2boojum 1.1 <p>The following steps describe, in detail, the process of setting up the
328 ka0ttic 1.3 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 g2boojum 1.1 <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 g2boojum 1.2 $ svnadmin create --fs-type fsfs /var/svnroot/&lt;repos&gt;
383 g2boojum 1.1 </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 g2boojum 1.6 <div class="section">
400     <h1><a class="toc-backref" href="#id14" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
401 g2boojum 1.1 <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 g2boojum 1.6 <div class="section">
406     <h1><a class="toc-backref" href="#id15" id="references" name="references">References</a></h1>
407 ka0ttic 1.3 <table class="docutils footnote" frame="void" id="id6" rules="none">
408 g2boojum 1.1 <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 ka0ttic 1.3 <table class="docutils footnote" frame="void" id="id7" rules="none">
415 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
416     <tbody valign="top">
417 g2boojum 1.2 <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 g2boojum 1.1 </tbody>
420     </table>
421 ka0ttic 1.3 <table class="docutils footnote" frame="void" id="id8" rules="none">
422 g2boojum 1.1 <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 ka0ttic 1.3 <table class="docutils footnote" frame="void" id="id9" rules="none">
429 g2boojum 1.1 <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 ka0ttic 1.3 <table class="docutils footnote" frame="void" id="id10" rules="none">
436 g2boojum 1.1 <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 g2boojum 1.6 <div class="section">
444     <h1><a class="toc-backref" href="#id16" id="copyright" name="copyright">Copyright</a></h1>
445 g2boojum 1.1 <p>This document has been placed in the public domain.</p>
446     </div>
447 ka0ttic 1.3
448 g2boojum 1.1 </div>
449     <div class="footer">
450 ciaranm 1.5 <hr class="footer" />
451 g2boojum 1.1 <a class="reference" href="glep-0036.txt">View document source</a>.
452 g2boojum 1.6 Generated on: 2006-10-10 20:23 UTC.
453 g2boojum 1.1 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 ciaranm 1.5
455 g2boojum 1.1 </div>
456     </body>
457     </html>

  ViewVC Help
Powered by ViewVC 1.1.20