SVN with web View — Gentoo Build

Recently, I’ve found a need to keep track of a lot of documents and configs of devices.
I’ve also had a need to version control some of my documents and code.

I’ve decided to use SVN with WebSVN to view all the configs and documents. To commit I will be using RapidSVN

Under Gentoo when you install SVN server it automatically sets the repository location at “/var/svn” If you want this to be on a separate volume, you’ll need to set up a mount point before the install.

SVN has two DB options :-

  1. FSFS
  2. Berkeley DB

I want to use FSFS, so add the “-berkdb” use flag to your /etc/make.conf
You can find the benefits/weakness of each hear.

I also want to build SVN with Apache, for the SVN DAV.
So make sure /etc/make.conf contains the apache2 use flag
To install :-
# emerge –config =dev-vcs/subversion-1.6.11
# emerge -a mod_python

After the install fix the permissions, as they may be broken.

# groupadd svnusers
# chown -R root:svnusers /var/svn/repos
# chmod -Rf go-rwx /var/svn/conf
# chmod -Rf g-w,o-rwx /var/svn/repos
# chmod -Rf g+rw /var/svn/repos/db
# chmod -Rf g+rw /var/svn/repos/locks

Start the server :-
# /etc/init.d/svnserve start

Lets get apache configured to support SVN
# nano /etc/conf.d/apache2
find the line “APACHE2_OPTS=”
Add in “-D DAV -D SVN -D PYTHON -D PHP”
start apache
# /etc/init.d/apache2 start

Install WebSVN
Add use flags “enscript”
# emerge -av websvn

Create a repository
# svnadmin create –fs-type fsfs /var/svn/REPOSITORYNAME

Edit Apache default vhost
# nano /etc/apache2/vhosts.d/00_default_vhost.conf
This will expose all repositories. Add the following:-
<Location /svn>
DAV svn
SVNParentPath /var/svn
</Location>

Note the above config is very insecure, by default all can read/write and all clients can connect with out auth. For me this is by design as my SVN host is fire-walled off from everything but internal LAN clients.

Edit websvn
# nano  /var/www/localhost/htdocs/websvn/include/config.php
Since I want to expose all my repositories I need to  uncomment and change the following line to set my SVN path :-
$config->parentPath(‘/var/svn’);

Also edit and uncomment  the following line to enable enscript
$config->setEnscriptPath(‘/usr/bin/’);

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: