/[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 - (show annotations) (download)
Wed Mar 23 15:27:24 2005 UTC (9 years, 1 month ago) by g2boojum
Branch: MAIN
Changes since 1.1: +7 -7 lines
File MIME type: text/plain
update

1 GLEP: 36
2 Title: Subversion/CVS for Gentoo Hosted Projects
3 Version: $Revision: 1.1 $
4 Author: Aaron Walker <ka0ttic@gentoo.org>
5 Last-Modified: $Date: 2005/03/13 16:12:53 $
6 Status: Draft
7 Type: Standards Track
8 Content-Type: text/x-rst
9 Created: 11-Nov-2004
10 Post-Date: 13-Mar-2005, 21-Mar-2005
11
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 app-shells/gentoo-bashcomp ([2]_).
27
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 $ svnadmin create --fs-type fsfs /var/svnroot/<repos>
82
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 .. [2] app-shells/gentoo-bashcomp
106 http://developer.berlios.de/projects/gentoo-bashcomp/
107 .. [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