/[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.3 - (hide annotations) (download) (as text)
Thu Apr 14 13:22:34 2005 UTC (9 years, 5 months ago) by ka0ttic
Branch: MAIN
Changes since 1.2: +21 -16 lines
File MIME type: text/html
Update.

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 ka0ttic 1.3 <meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
12 g2boojum 1.1 <title>GLEP 36 -- Subversion/CVS for Gentoo Hosted Projects</title>
13     <link rel="stylesheet" href="tools/glep.css" type="text/css" />
14     </head>
15     <body bgcolor="white">
16     <table class="navigation" cellpadding="0" cellspacing="0"
17     width="100%" border="0">
18     <tr><td class="navicon" width="150" height="35">
19     <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
20     <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
21     border="0" width="150" height="35" /></a></td>
22     <td class="textlinks" align="left">
23     [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
24     [<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>]
25     [<b><a href="./glep-0036.txt">GLEP Source</a></b>]
26     </td></tr></table>
27 ka0ttic 1.3 <table class="rfc2822 docutils field-list" frame="void" rules="none">
28 g2boojum 1.1 <col class="field-name" />
29     <col class="field-body" />
30     <tbody valign="top">
31     <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">36</td>
32     </tr>
33     <tr class="field"><th class="field-name">Title:</th><td class="field-body">Subversion/CVS for Gentoo Hosted Projects</td>
34     </tr>
35 ka0ttic 1.3 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.4</td>
36 g2boojum 1.1 </tr>
37     <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>
38     </tr>
39 ka0ttic 1.3 <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/xml/htdocs/proj/en/glep/glep-0036.txt?cvsroot=gentoo">2005/04/14 13:22:07</a></td>
40 g2boojum 1.1 </tr>
41     <tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td>
42     </tr>
43     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
44     </tr>
45     <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0012.html">text/x-rst</a></td>
46     </tr>
47     <tr class="field"><th class="field-name">Created:</th><td class="field-body">11-Nov-2004</td>
48     </tr>
49 g2boojum 1.2 <tr class="field"><th class="field-name">Post-Date:</th><td class="field-body">13-Mar-2005, 21-Mar-2005</td>
50 g2boojum 1.1 </tr>
51     </tbody>
52     </table>
53     <hr />
54     <div class="contents topic" id="contents">
55     <p class="topic-title first"><a name="contents">Contents</a></p>
56     <ul class="simple">
57     <li><a class="reference" href="#abstract" id="id11" name="id11">Abstract</a></li>
58     <li><a class="reference" href="#motivation" id="id12" name="id12">Motivation</a></li>
59     <li><a class="reference" href="#specification" id="id13" name="id13">Specification</a></li>
60     <li><a class="reference" href="#backwards-compatibility" id="id14" name="id14">Backwards Compatibility</a></li>
61     <li><a class="reference" href="#references" id="id15" name="id15">References</a></li>
62     <li><a class="reference" href="#copyright" id="id16" name="id16">Copyright</a></li>
63     </ul>
64     </div>
65     <div class="section" id="abstract">
66     <h1><a class="toc-backref" href="#id11" name="abstract">Abstract</a></h1>
67     <p>Allow maintainers of Gentoo hosted projects to choose between Subversion/CVS.</p>
68     </div>
69     <div class="section" id="motivation">
70     <h1><a class="toc-backref" href="#id12" name="motivation">Motivation</a></h1>
71     <p>By offering a choice of version control systems, developers who want or need
72     certain features, can choose which one suits them or their project the best.</p>
73     <p>In addition, there are quite a few projects that should be Gentoo hosted, but
74     are hosted elsewhere due to the fact that Subversion is not currently offered.
75     Examples include the app-vim/gentoo-syntax package (<a class="footnote-reference" href="#id6" id="id1" name="id1">[1]</a>), and
76 g2boojum 1.2 app-shells/gentoo-bashcomp (<a class="footnote-reference" href="#id7" id="id2" name="id2">[2]</a>).</p>
77 g2boojum 1.1 <p>Subversion has many advantages over CVS, including changesets, directory
78     versioning, atomic commits, versioned metadata, and more efficient branching
79     and tagging (<a class="footnote-reference" href="#id8" id="id3" name="id3">[3]</a>). Despite these advantages, many developers feel that
80     Subversion is not yet ready for the main tree due to scaling issues.</p>
81     </div>
82     <div class="section" id="specification">
83     <h1><a class="toc-backref" href="#id13" name="specification">Specification</a></h1>
84     <p>The following steps describe, in detail, the process of setting up the
85 ka0ttic 1.3 Subversion svnserve daemon (over SSH) and creating new repositories.</p>
86     <p>One repository should be created per project. Reasons for this include easier
87     control over who has access, performance (checking out one big repository
88     takes many times longer), ease-of-use (branching and merging are more difficult
89     with one big repository), and meaningful revision numbers (since Subversion
90     uses repository-global revision numbers, revision numbers for project A will
91     increase on every commit even if no changes are made to project A).</p>
92     <p>For preexisting CVS repositories, instructions on converting (<a class="footnote-reference" href="#id9" id="id4" name="id4">[4]</a>) are
93     already available in addition to the cvs2svn documentation itself (<a class="footnote-reference" href="#id10" id="id5" name="id5">[5]</a>).</p>
94 g2boojum 1.1 <ol class="arabic">
95     <li><p class="first">Install dev-util/subversion:</p>
96     <pre class="literal-block">
97     $ emerge subversion
98     </pre>
99     </li>
100     <li><p class="first">Write wrapper script for svnserve:</p>
101     <pre class="literal-block">
102     $ $EDITOR /usr/local/bin/svnserve-ssh &amp;&amp; chmod +x \
103     &gt; /usr/local/bin/svnserve-ssh
104    
105     #!/bin/sh
106     umask 002
107     exec /usr/bin/svnserve &quot;$&#64;&quot;
108     </pre>
109     </li>
110     <li><p class="first">Modify the svnserve rc script:</p>
111     <pre class="literal-block">
112     $ cp /etc/init.d/svnserve /etc/init.d/svnserve-ssh
113     $ sed -i 's:/usr/bin/svnserve:/usr/local/bin/svnserve-ssh:' \
114     &gt; /etc/init.d/svnserve-ssh
115     </pre>
116     </li>
117     <li><p class="first">Edit svnserve rc config:</p>
118     <pre class="literal-block">
119     $ ln -s /etc/init.d/svnserve /etc/init.d/svnserve-ssh
120     $ $EDITOR /etc/init.d/svnserve
121     </pre>
122     <p>SVNSERVE_OPTS=&quot;--root=/var/svnroot&quot;
123     SVNSERVE_USER=&quot;svn&quot;
124     SVNSERVE_GROUP=&quot;svn&quot;</p>
125     </li>
126     <li><p class="first">Add svn group and user:</p>
127     <pre class="literal-block">
128     $ groupadd svn
129     $ useradd svn -d /var/svnroot -s /bin/false -g svn
130     </pre>
131     </li>
132     <li><p class="first">Create the directory that will hold the repositories:</p>
133     <pre class="literal-block">
134     $ mkdir -p /var/svnroot/conf
135     </pre>
136     </li>
137     <li><p class="first">To create new repositories, simply run:</p>
138     <pre class="literal-block">
139 g2boojum 1.2 $ svnadmin create --fs-type fsfs /var/svnroot/&lt;repos&gt;
140 g2boojum 1.1 </pre>
141     </li>
142     <li><p class="first">Make sure newly created/converted repositories have correct permissions. Of course, Infra might want to do this differently:</p>
143     <pre class="literal-block">
144     $ chown -Rf svn:users /var/svnroot/&lt;repos&gt;
145     $ chmod -Rf 775 /var/svnroot/&lt;repos&gt;
146     </pre>
147     </li>
148     <li><p class="first">Start it up:</p>
149     <pre class="literal-block">
150     $ /etc/init.d/svnserve-ssh start
151     $ rc-update add svnserve-ssh default
152     </pre>
153     </li>
154     </ol>
155     </div>
156     <div class="section" id="backwards-compatibility">
157     <h1><a class="toc-backref" href="#id14" name="backwards-compatibility">Backwards Compatibility</a></h1>
158     <p>Offering a choice between Subversion and CVS should in no way cause any
159     backwards compatibility issues. Those developers who prefer to use CVS can
160     continue to do so without any ill effects.</p>
161     </div>
162     <div class="section" id="references">
163     <h1><a class="toc-backref" href="#id15" name="references">References</a></h1>
164 ka0ttic 1.3 <table class="docutils footnote" frame="void" id="id6" rules="none">
165 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
166     <tbody valign="top">
167     <tr><td class="label"><a class="fn-backref" href="#id1" name="id6">[1]</a></td><td>app-vim/gentoo-syntax
168     <a class="reference" href="http://developer.berlios.de/projects/gentoo-syntax/">http://developer.berlios.de/projects/gentoo-syntax/</a></td></tr>
169     </tbody>
170     </table>
171 ka0ttic 1.3 <table class="docutils footnote" frame="void" id="id7" rules="none">
172 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
173     <tbody valign="top">
174 g2boojum 1.2 <tr><td class="label"><a class="fn-backref" href="#id2" name="id7">[2]</a></td><td>app-shells/gentoo-bashcomp
175     <a class="reference" href="http://developer.berlios.de/projects/gentoo-bashcomp/">http://developer.berlios.de/projects/gentoo-bashcomp/</a></td></tr>
176 g2boojum 1.1 </tbody>
177     </table>
178 ka0ttic 1.3 <table class="docutils footnote" frame="void" id="id8" rules="none">
179 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
180     <tbody valign="top">
181     <tr><td class="label"><a class="fn-backref" href="#id3" name="id8">[3]</a></td><td>Version Control with Subversion
182     <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>
183     </tbody>
184     </table>
185 ka0ttic 1.3 <table class="docutils footnote" frame="void" id="id9" rules="none">
186 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
187     <tbody valign="top">
188     <tr><td class="label"><a class="fn-backref" href="#id4" name="id9">[4]</a></td><td>Migration of Gentoo Repositories from CVS to Subversion
189     <a class="reference" href="http://dev.gentoo.org/~trapni/CVS2SVN.MIGRATION">http://dev.gentoo.org/~trapni/CVS2SVN.MIGRATION</a></td></tr>
190     </tbody>
191     </table>
192 ka0ttic 1.3 <table class="docutils footnote" frame="void" id="id10" rules="none">
193 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
194     <tbody valign="top">
195     <tr><td class="label"><a class="fn-backref" href="#id5" name="id10">[5]</a></td><td>cvs2svn Documentation
196     <a class="reference" href="http://cvs2svn.tigris.org/cvs2svn.html">http://cvs2svn.tigris.org/cvs2svn.html</a></td></tr>
197     </tbody>
198     </table>
199     </div>
200     <div class="section" id="copyright">
201     <h1><a class="toc-backref" href="#id16" name="copyright">Copyright</a></h1>
202     <p>This document has been placed in the public domain.</p>
203     </div>
204 ka0ttic 1.3
205 g2boojum 1.1 </div>
206 ka0ttic 1.3 <hr class="docutils footer" />
207 g2boojum 1.1 <div class="footer">
208     <a class="reference" href="glep-0036.txt">View document source</a>.
209 ka0ttic 1.3 Generated on: 2005-04-14 13:23 UTC.
210 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.
211     </div>
212     </body>
213     </html>

  ViewVC Help
Powered by ViewVC 1.1.20