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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download)
Wed Mar 23 15:27:24 2005 UTC (9 years, 9 months ago) by g2boojum
Branch: MAIN
Changes since 1.1: +7 -7 lines
File MIME type: text/plain
update

1 g2boojum 1.1 GLEP: 36
2     Title: Subversion/CVS for Gentoo Hosted Projects
3 g2boojum 1.2 Version: $Revision: 1.1 $
4 g2boojum 1.1 Author: Aaron Walker <ka0ttic@gentoo.org>
5 g2boojum 1.2 Last-Modified: $Date: 2005/03/13 16:12:53 $
6 g2boojum 1.1 Status: Draft
7     Type: Standards Track
8     Content-Type: text/x-rst
9     Created: 11-Nov-2004
10 g2boojum 1.2 Post-Date: 13-Mar-2005, 21-Mar-2005
11 g2boojum 1.1
12     Abstract
13     ========
14    
15     Allow maintainers of Gentoo hosted projects to choose between Subversion/CVS.
16    
17     Motivation
18     ==========
19    
20     By offering a choice of version control systems, developers who want or need
21     certain features, can choose which one suits them or their project the best.
22    
23     In addition, there are quite a few projects that should be Gentoo hosted, but
24     are hosted elsewhere due to the fact that Subversion is not currently offered.
25     Examples include the app-vim/gentoo-syntax package ([1]_), and
26 g2boojum 1.2 app-shells/gentoo-bashcomp ([2]_).
27 g2boojum 1.1
28     Subversion has many advantages over CVS, including changesets, directory
29     versioning, atomic commits, versioned metadata, and more efficient branching
30     and tagging ([3]_). Despite these advantages, many developers feel that
31     Subversion is not yet ready for the main tree due to scaling issues.
32    
33     Specification
34     =============
35    
36     The following steps describe, in detail, the process of setting up the
37     Subversion svnserve daemon (over SSH) and creating new repositories.
38     Information is already available for converting Gentoo CVS repositories ([4]_)
39     in addition to the cvs2svn documentation itself ([5]_).
40    
41     1. Install dev-util/subversion::
42    
43     $ emerge subversion
44    
45     2. Write wrapper script for svnserve::
46    
47    
48     $ $EDITOR /usr/local/bin/svnserve-ssh && chmod +x \
49     > /usr/local/bin/svnserve-ssh
50    
51     #!/bin/sh
52     umask 002
53     exec /usr/bin/svnserve "$@"
54    
55     3. Modify the svnserve rc script::
56    
57     $ cp /etc/init.d/svnserve /etc/init.d/svnserve-ssh
58     $ sed -i 's:/usr/bin/svnserve:/usr/local/bin/svnserve-ssh:' \
59     > /etc/init.d/svnserve-ssh
60    
61     4. Edit svnserve rc config::
62    
63     $ ln -s /etc/init.d/svnserve /etc/init.d/svnserve-ssh
64     $ $EDITOR /etc/init.d/svnserve
65    
66     SVNSERVE_OPTS="--root=/var/svnroot"
67     SVNSERVE_USER="svn"
68     SVNSERVE_GROUP="svn"
69    
70     5. Add svn group and user::
71    
72     $ groupadd svn
73     $ useradd svn -d /var/svnroot -s /bin/false -g svn
74    
75     6. Create the directory that will hold the repositories::
76    
77     $ mkdir -p /var/svnroot/conf
78    
79     7. To create new repositories, simply run::
80    
81 g2boojum 1.2 $ svnadmin create --fs-type fsfs /var/svnroot/<repos>
82 g2boojum 1.1
83     8. Make sure newly created/converted repositories have correct permissions. Of course, Infra might want to do this differently::
84    
85     $ chown -Rf svn:users /var/svnroot/<repos>
86     $ chmod -Rf 775 /var/svnroot/<repos>
87    
88     9. Start it up::
89    
90     $ /etc/init.d/svnserve-ssh start
91     $ rc-update add svnserve-ssh default
92    
93     Backwards Compatibility
94     =======================
95    
96     Offering a choice between Subversion and CVS should in no way cause any
97     backwards compatibility issues. Those developers who prefer to use CVS can
98     continue to do so without any ill effects.
99    
100     References
101     ==========
102    
103     .. [1] app-vim/gentoo-syntax
104     http://developer.berlios.de/projects/gentoo-syntax/
105 g2boojum 1.2 .. [2] app-shells/gentoo-bashcomp
106     http://developer.berlios.de/projects/gentoo-bashcomp/
107 g2boojum 1.1 .. [3] Version Control with Subversion
108     http://svnbook.red-bean.com/en/1.0/ch01s03.html
109     .. [4] Migration of Gentoo Repositories from CVS to Subversion
110     http://dev.gentoo.org/~trapni/CVS2SVN.MIGRATION
111     .. [5] cvs2svn Documentation
112     http://cvs2svn.tigris.org/cvs2svn.html
113    
114     Copyright
115     =========
116    
117     This document has been placed in the public domain.

  ViewVC Help
Powered by ViewVC 1.1.20