/[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.5 - (show annotations) (download) (as text)
Mon Nov 7 22:26:59 2005 UTC (8 years, 10 months ago) by ciaranm
Branch: MAIN
Changes since 1.4: +8 -7 lines
File MIME type: text/html
Fix header typos, GLEP 1 compliance

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.3.9: http://docutils.sourceforge.net/" />
12 <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 <table class="rfc2822 docutils field-list" frame="void" rules="none">
28 <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 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.5</td>
36 </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 <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/07/30 16:58:12</a></td>
40 </tr>
41 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Final</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="http://www.python.org/peps/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 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">13-Mar-2005, 21-Mar-2005</td>
50 </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 app-shells/gentoo-bashcomp (<a class="footnote-reference" href="#id7" id="id2" name="id2">[2]</a>).</p>
77 <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 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 <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 $ svnadmin create --fs-type fsfs /var/svnroot/&lt;repos&gt;
140 </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 <table class="docutils footnote" frame="void" id="id6" rules="none">
165 <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 <table class="docutils footnote" frame="void" id="id7" rules="none">
172 <colgroup><col class="label" /><col /></colgroup>
173 <tbody valign="top">
174 <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 </tbody>
177 </table>
178 <table class="docutils footnote" frame="void" id="id8" rules="none">
179 <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 <table class="docutils footnote" frame="void" id="id9" rules="none">
186 <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 <table class="docutils footnote" frame="void" id="id10" rules="none">
193 <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
205 </div>
206 <div class="footer">
207 <hr class="footer" />
208 <a class="reference" href="glep-0036.txt">View document source</a>.
209 Generated on: 2005-11-07 22:15 UTC.
210 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
212 </div>
213 </body>
214 </html>

  ViewVC Help
Powered by ViewVC 1.1.20