/[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.8 - (show annotations) (download) (as text)
Sun Oct 14 17:00:15 2007 UTC (6 years, 10 months ago) by antarus
Branch: MAIN
CVS Tags: HEAD
Changes since 1.7: +4 -251 lines
File MIME type: text/html
the canary on 53 went well, changing the rest

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

  ViewVC Help
Powered by ViewVC 1.1.20