summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-09-14 23:14:39 +0200
committerUlrich Müller <ulm@gentoo.org>2017-10-09 12:08:51 +0200
commitc6fe2071a2e83be2203196ad7f9459941821a034 (patch)
treed81e1d9898c05917e05203af9803b581dff0d915 /glep-0036.rst
parentglep-0045: Mark Final since GLEP 1 now uses ISO 8601 dates (diff)
downloadglep-c6fe2071a2e83be2203196ad7f9459941821a034.tar.gz
glep-c6fe2071a2e83be2203196ad7f9459941821a034.tar.bz2
glep-c6fe2071a2e83be2203196ad7f9459941821a034.zip
Rename all GLEPs to .rst
Diffstat (limited to 'glep-0036.rst')
-rw-r--r--glep-0036.rst127
1 files changed, 127 insertions, 0 deletions
diff --git a/glep-0036.rst b/glep-0036.rst
new file mode 100644
index 0000000..13f60a3
--- /dev/null
+++ b/glep-0036.rst
@@ -0,0 +1,127 @@
+GLEP: 36
+Title: Subversion/CVS for Gentoo Hosted Projects
+Version: $Revision$
+Author: Aaron Walker <ka0ttic@gentoo.org>
+Last-Modified: $Date$
+Status: Final
+Type: Standards Track
+Content-Type: text/x-rst
+Created: 11-Nov-2004
+Post-History: 13-Mar-2005, 21-Mar-2005
+
+Abstract
+========
+
+Allow maintainers of Gentoo hosted projects to choose between Subversion/CVS.
+
+Motivation
+==========
+
+By offering a choice of version control systems, developers who want or need
+certain features, can choose which one suits them or their project the best.
+
+In addition, there are quite a few projects that should be Gentoo hosted, but
+are hosted elsewhere due to the fact that Subversion is not currently offered.
+Examples include the app-vim/gentoo-syntax package ([1]_), and
+app-shells/gentoo-bashcomp ([2]_).
+
+Subversion has many advantages over CVS, including changesets, directory
+versioning, atomic commits, versioned metadata, and more efficient branching
+and tagging ([3]_). Despite these advantages, many developers feel that
+Subversion is not yet ready for the main tree due to scaling issues.
+
+Specification
+=============
+
+The following steps describe, in detail, the process of setting up the
+Subversion svnserve daemon (over SSH) and creating new repositories.
+
+One repository should be created per project. Reasons for this include easier
+control over who has access, performance (checking out one big repository
+takes many times longer), ease-of-use (branching and merging are more difficult
+with one big repository), and meaningful revision numbers (since Subversion
+uses repository-global revision numbers, revision numbers for project A will
+increase on every commit even if no changes are made to project A).
+
+For preexisting CVS repositories, instructions on converting ([4]_) are
+already available in addition to the cvs2svn documentation itself ([5]_).
+
+1. Install dev-util/subversion::
+
+ $ emerge subversion
+
+2. Write wrapper script for svnserve::
+
+
+ $ $EDITOR /usr/local/bin/svnserve-ssh && chmod +x \
+ > /usr/local/bin/svnserve-ssh
+
+ #!/bin/sh
+ umask 002
+ exec /usr/bin/svnserve "$@"
+
+3. Modify the svnserve rc script::
+
+ $ cp /etc/init.d/svnserve /etc/init.d/svnserve-ssh
+ $ sed -i 's:/usr/bin/svnserve:/usr/local/bin/svnserve-ssh:' \
+ > /etc/init.d/svnserve-ssh
+
+4. Edit svnserve rc config::
+
+ $ ln -s /etc/init.d/svnserve /etc/init.d/svnserve-ssh
+ $ $EDITOR /etc/init.d/svnserve
+
+ SVNSERVE_OPTS="--root=/var/svnroot"
+ SVNSERVE_USER="svn"
+ SVNSERVE_GROUP="svn"
+
+5. Add svn group and user::
+
+ $ groupadd svn
+ $ useradd svn -d /var/svnroot -s /bin/false -g svn
+
+6. Create the directory that will hold the repositories::
+
+ $ mkdir -p /var/svnroot/conf
+
+7. To create new repositories, simply run::
+
+ $ svnadmin create --fs-type fsfs /var/svnroot/<repos>
+
+8. Make sure newly created/converted repositories have correct permissions. Of course, Infra might want to do this differently::
+
+ $ chown -Rf svn:users /var/svnroot/<repos>
+ $ chmod -Rf 775 /var/svnroot/<repos>
+
+9. Start it up::
+
+ $ /etc/init.d/svnserve-ssh start
+ $ rc-update add svnserve-ssh default
+
+Backwards Compatibility
+=======================
+
+Offering a choice between Subversion and CVS should in no way cause any
+backwards compatibility issues. Those developers who prefer to use CVS can
+continue to do so without any ill effects.
+
+References
+==========
+
+.. [1] app-vim/gentoo-syntax
+ http://developer.berlios.de/projects/gentoo-syntax/
+.. [2] app-shells/gentoo-bashcomp
+ http://developer.berlios.de/projects/gentoo-bashcomp/
+.. [3] Version Control with Subversion
+ http://svnbook.red-bean.com/en/1.0/ch01s03.html
+.. [4] Migration of Gentoo Repositories from CVS to Subversion
+ http://dev.gentoo.org/~trapni/CVS2SVN.MIGRATION
+.. [5] cvs2svn Documentation
+ http://cvs2svn.tigris.org/cvs2svn.html
+
+Copyright
+=========
+
+This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
+Unported License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/3.0/.