Indefero

InstallationScmSubversion


Table of Contents

How to have InDefero controlling the Subversion access rights

Plugin SyncSvn by Baptiste Michaud

The SyncSvn plugin allow the direct creation and synchronisation of subversion repositories with the InDefero database. This requires giving access to the repositories using the DAV_SVN module of Apache2.

To Contact the Author

Baptiste Michaud
bactisme@gmail.com
webplay.fr - frandroid.com - lost-in-translation.fr

Apache configuration

You will first need to install the DAV_SVN module for Apache. On Debian/Ubuntu based systems just run:

$ sudo apt-get install libapache2-svn
$ sudo a2enmod dav_svn

Then, you need to configure dav_svn, this is an example of configuration:

<Location /svn>
  DAV svn
  SVNParentPath /home/svn/repositories
  AuthzSVNAccessFile /home/svn/dav_svn.authz
  Satisfy Any
  Require valid-user
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /home/svn/dav_svn.passwd
</Location>

Be sure to read the documentation before.

The files /home/svn/dav_svn.authz, /home/svn/dav_svn.passwd and the directory /home/svn/repositories must be writable by your webserver process. To ensure that, do:

$ sudo mkdir --parents /home/svn/repositories
$ sudo touch /home/svn/dav_svn.authz
$ sudo touch /home/svn/dav_svn.passwd
$ sudo chown -R www-data:www-data /home/svn

Now, you need to restart apache:

$ sudo /etc/init.d/apache2 force-reload

InDefero Configuration

First, you need to install the File_Passwd PEAR package:

$ sudo pear install File_Passwd

Then, based on the paths provided in the Apache configuration and if your Apache server is serving the domain www.mydomain.com, the you need to put the following in your configuration file:

$cfg['svn_repositories'] = 'file:///home/svn/repositories/%s';
// We add "trunk" to invite people to checkout the trunk of the
// project.
$cfg['svn_remote_url'] = 'http://www.mydomain.com/svn/%s/trunk';

// Synchronisation specific configuration variables
$cfg['idf_plugin_syncsvn_authz_file'] = '/home/svn/dav_svn.authz';
$cfg['idf_plugin_syncsvn_passwd_file'] = '/home/svn/dav_svn.passwd';
$cfg['idf_plugin_syncsvn_svn_path'] = '/home/svn/repositories'; 
// Delete the corresponding repository when deleting the project
$cfg['idf_plugin_syncsvn_remove_orphans'] = false;

You can have more control over the permissions given to the owners, members, extra authorized users and anonymous users if you want with the following configuration variables:

  • idf_plugin_syncsvn_access_owners ('rw'): Access for the project owners.
  • idf_plugin_syncsvn_access_members ('rw'): Access for the project members.
  • idf_plugin_syncsvn_access_extra ('r'): Access for the extra authorized people in case of a private project.
  • idf_plugin_syncsvn_access_public ('r'): Anonymous access.
  • idf_plugin_syncsvn_access_private (''): Anonymous access in the case of a private project.

svn: Can't open file '/root/.subversion/servers': Permission denied error

If you get the error:

svn: Can't open file '/root/.subversion/servers': Permission denied

Check the fix available

Read more

Check also InstallationScmGit and InstallationScmMercurial.

Created: 11 years 3 months ago
by Natalie Adams

Page rendered in 0.06608s using 26 queries.