> file:///usr/share/doc/packages/subversion/README.SuSE > > Topics: > > 1. backup and restore your repository data > 2. create svn user/group for svnserve > 3. mini-howto for 2 projects > > ================================================================================ > > 1. backup and restore your repository data > 2. create svn user/group for svnserve I'd rather use http than svnserve. > 3. mini-howto for 2 projects > > To run a subversion server, you need to configure apache2 to load two apache2 > modules: mod_dav and mod_dav_svn. (mod_dav is needed by mod_dav_svn, it is > installed together with apache2.) > > This is done by editing the apache2 configuration (/etc/sysconfig/apache2) and > adding "dav dav_svn" to the APACHE_MODULES setting, and restarting the server. Here is the first problem. There is no /etc/sysconfig/apache2 file. When I create the file who should own it and what should the permissions be? What is the syntax for APACHE_MODULES (or where do I look in the Apache docs)? The official Subversion book says that somewhere httpd.conf needs to invoke LoadModule dav_module /usr/lib/apache2/mod_dav.so LoadModule dav_svn_module /usr/lib/apache2/mod_dav_svn.so Apache2 recommends: # Note: instead of adding your own configuration here, consider # adding it in your own file (/etc/apache2/httpd.conf.local) # putting its name into APACHE_CONF_INCLUDE_FILES in # /etc/sysconfig/apache2 -- this will make system updates # easier :) > A default/example configuration of the dav_svn module can be found in > /etc/apache2/conf.d/subversion.conf. With more recent apache > packages, this configuration is *not* loaded automatically by > the apache server, since many people configure virtual hosts > and it is unlikely that the repositories shall be available > from any virtual host. To load the configuration for a certain > virtual host, add > Include /etc/apache2/conf.d/subversion.conf > or > Include /path/to/your_subversion_configuration > in the respective virtual host configuration. This *may* be done in the default > virtual host (/etc/apache2/default-server.conf). Since it's on my linux workstation I'll add the Include on the virtual host so everyone sees it. > Minihowto: > > > The plan: > > host 2 source projects with subversion > both must have anonymous read access > both must have limited write access for a few users > they are accessed only via HTTP, not (!) locally > they will be reachable via: > > http://hostname/repos/project1 > http://hostname/repos/project2 > > Both will have the official version of the source tree and our modified > version for the distribution. Projects in question are: > project1 > project2 > > The realisation: > > find a machine to host the projects. Keep backup (and restore!) in mind > when hunting for hardware. > > install needed packages > (you might check for update packages on > ftp://ftp.suse.com/pub/projects/apache/ ) > > rpm -Uvh \ > apache2 \ > apache2-doc \ > apache2-prefork \ > libapr0 \ > neon \ > subversion \ > subversion-doc \ > subversion-server > Assume they came with the distro. > > Update /etc/sysconfig/apache2 > add 'dav dav_svn' to $APACHE_MODULES OK. > create a few directories: > mkdir -p /srv/svn/repos > mkdir -p /srv/svn/user_access > mkdir -p /srv/svn/html > > Add the http repository data to /etc/apache2/conf.d/subversion.conf: > #------------------------------------------------------------------------ > # > # project related HTML files > # > > Alias /repos "/srv/svn/html" > > > Options +Indexes +Multiviews -FollowSymLinks > IndexOptions FancyIndexing \ > ScanHTMLTitles \ > NameWidth=* \ > DescriptionWidth=* \ > SuppressLastModified \ > SuppressSize > > order allow,deny > allow from all > > > > # project repository files for project1 > > DAV svn > SVNPath /srv/svn/repos/project1 > > # Limit write access to certain people > AuthType Basic > AuthName "Authorization for project1 required" > AuthUserFile /srv/svn/user_access/project1_passwdfile > AuthGroupFile /srv/svn/user_access/project1_groupfile > > Require group project1_committers > > > # Limit read access to certain people > > Require group project1_committers > Require group project1_readers > > > > > # project repository files for project2 > > DAV svn > SVNPath /srv/svn/repos/project2 > > # Limit write permission to list of valid users. > > # Require SSL connection for password protection. > # SSLRequireSSL > > AuthType Basic > AuthName "Authorization for project2 required" > AuthUserFile /srv/svn/user_access/project2_passwdfile > Require valid-user > > > #------------------------------------------------------------------------ > > create the repositories itself: > cd /srv/svn/repos > svnadmin create project1 > chown -R wwwrun:www project1/{dav,db,locks} > svnadmin create project2 > chown -R wwwrun:www project2/{dav,db,locks} > > > The webserver must be configured and started: > SuSEconfig --module apache2 > rcapache2 restart > > Now create the user access files: > project1 is a restricted project. > read access requires a password > write access is limited to a few users > touch /srv/svn/user_access/project1_passwdfile > chown root:www /srv/svn/user_access/project1_passwdfile > chmod 640 /srv/svn/user_access/project1_passwdfile > > htpasswd2 /srv/svn/user_access/project1_passwdfile olaf > htpasswd2 /srv/svn/user_access/project1_passwdfile olh > > this is the group file for project1: > /srv/svn/user_access/project1_groupfile > content: > project1_committers: olh > project1_readers: olaf olh > > project2 is world readable, but only a few can commit to the sources. > touch /srv/svn/user_access/project2_passwdfile > chown root:www /srv/svn/user_access/project2_passwdfile > chmod 640 /srv/svn/user_access/project2_passwdfile > htpasswd2 /srv/svn/user_access/project2_passwdfile olaf > > You should be able to connect to the server: > http://host/repos/project2 > http://host/repos/project1 > > Now import the data, e.g. > svn import /path/to/project2-tree http://host/repos/project2 --------------------------------------------------- PLUG-discuss mailing list - PLUG-discuss@lists.plug.phoenix.az.us To subscribe, unsubscribe, or to change you mail settings: http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss