############################################## Setup Subversion Autoversioning on Fedora Core ############################################## (for Version 1.2.3) This small HOWTO describes all needed steps to setup a self-versioning setup with Subversion in a Unix-like environment. Requirements: neon-Library (http://www.webdav.org/neon/neon-0.24.7.tar.gz) subversion (http://subversion.tigris.org/downloads/subversion-1.2.3.tar.gz) davfs2 linux file system driver (http://dav.sf.net) Author: Thomas Keller Subversion compilation (server) =============================== $ tar -xzf subversion-1.2.3.tar.gz && cd subversion-1.2.3 $ ./configure --prefix=/path/to/installdir \ --with-apxs=/path/to/httpd/bin/apxs \ --without-berkeley-db --with-zlib $ make & make install If Berkeley-DB support should be available, an additional "--with-apr-config=/path/to/apr-config" is needed. Default-Backend is FSFS since Subversion 1.1, however. You can ignore these warnings through the compile: libtool: link: warning: `/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../..//libgdbm.la' seems to be moved libtool: link: warning: `/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../..//libexpat.la' seems to be moved libtool: link: warning: `/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../..//libgdbm.la' seems to be moved libtool: link: warning: `/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../..//libexpat.la' seems to be moved libtool: link: warning: `/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../..//libgdbm.la' seems to be moved libtool: link: warning: `/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../..//libexpat.la' seems to be moved libtool: link: warning: `/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../..//libgdbm.la' seems to be moved libtool: link: warning: `/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../..//libexpat.la' seems to be moved Subversion administration ========================= Repo creation: svnadmin create --fs-type [fsfs|bdb] Each repository can have its own hooks on system actions (reside in /repo/hooks), any template from /hooks can be copied there. * Load dav_svn module in httpd.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so * Tell apache the location of the svn repo via Location DAV svn SVNPath /path/to/repository SVNAutoversioning on Client installation =================== System config: -------------- You should at least use davfs2 version 0.2.7 or higher since 0.2.6 contained serious bugs concerning IIS and OpenOffice. Attention: the coda kernel module is needed! Beware that the kernel interface has changed between 2.4 and 2.6 so you might need the kernel sources in order to compile davfs2 with the correct kernel. Also, if you come around the famous gcc error "including kernel header in userspace" you might need to edit davfsd.h and change to /path/to/kernel/src/linux/include/linux/coda.h. Note: Make sure, that --with-kernel-src is always the last parameter in the ./configure command! $ su root $ ./configure --with-kernel-src && make && make install $ ln -s /usr/local/sbin/mount.davfs /sbin/ (setuid!) $ mkdir /mnt/svnrepo $ echo "http://path/to/svnrepo /mnt/svnrepo davfs user,noauto 0 0" >> /etc/fstab Now add the users who should able to mount the dav share to the "users" group (other group? configure --with-group=) and add the following lines in your /etc/modules.conf or /etc/modprobe.conf: alias char-major-67 coda # this one is needed for normal systems alias /dev/davfs* coda # this one is used by devfs Per user config: ---------------- To be able to mount and use webdav shares without entering your password each time, you need to enter it in davfs2's `secrets` file: $ mkdir ~/.davfs2 $ cp /usr/local/share/davfs2/secrets.template ~/.davfs2/secrets $ chmod 600 ~/.davfs2/secrets $ mcedit ~/.davfs2/secrets # edit according to your previous settings $ cp /usr/local/share/davfs2/davfs2.conf.template ~/.davfs2/davfs2.conf davfs2.conf contains proxy entries, secrets the user/pass combinations for several shares. Thats it! Now you should be able to do a $ mount /mnt/svnrepo and see your subversion repository as normal filesystem!