To be able to restict access on a per-project-basis for each user who has access to a server, there have to be undertaken several steps:
1) Edit /etc/apache2/mods-enabled/dav_svn.conf so that it looks something like
DAV svn
SVNPath /var/svn
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
Require valid-user
AuthType Basic
AuthName "SVN Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
2) It may be necessary to active the module authz_svn via following command
a2enmod authz_svn
3) According to what we defined above, now all access settings can be configured by editing the file /etc/apache2/dav_svn.authz which may looks something like this:
---------------------------------------------------
[groups]
gruppe1 = username1,username2, ...
gruppe2 = username3
[project1:/]
@gruppe1= rw
@gruppe2 = r
[project2:/]
@gruppe2 = rw
[project3:/]
@admin = rw
[project4:/]
username1 = rw
---------------------------------------------------
As we can see, it is possible to either define groups and grant them access to a certain project (prefixed with '@'), or a single user (where we just use the username, without the '@'). Also it is possible to grant read-only (via 'r') or read-write access (via 'rw').
Due to the lack of a built in solution or a (simple) plugin which connects a SVN-repository and Mantis, the connection of these two system could be a bit tricky.
Preconditions
These system could be but must not be on the same host.
Configuration SVN
Add a post commit hook to your SVN-repository with the following code:
#!/bin/sh
REV="$2"
URL="http://mantis.example.com/plugin.php?page=Source/checkin"
PROJECT="ProjectName"
CURL=/usr/bin/curl
${CURL} -d "repo_name=${PROJECT}" -d "data=${REV}" -d "api_key=4289def1asdc402abf71de1d" ${URL}
Configuration WebSVN
Add the repository to WebSVN, which is use to see the source of the code and the diffs of the commits.
PATH_TO/websvn/include/config.php
$config->addRepository('$NAME', 'svn://URL_TO_REPOSITORY', null, '$SVN_USER', '$SVN_PASSWORD');
Configuration WebSVN
Add the repository to Mantis.
Commit message commands
apt-get install libapache2-svn
mkdir /home/myuser/svn
mkdir /home/myuser/repository
chown www-data:www-data -R /var/svn/repository
...
SVNParentPath /var/svn/repository
#SVNPath /var/svn/repository
.....
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
...
htpasswd2 -c /etc/apache2/dav_svn.passwd testuser
su www-data
svnadmin create /var/svn/repository/example
exit
/etc/init.d/apache2 restart
As long as your data is not that confidental, getDropBox would be a capable thing. It's lightweight and hence easy-to-use.
All your stuff is stored online comprising svn features.
A crucial tradeoff could be a free of charge storage-limit of 2GB.
I use this tool to share my college stuff with my mates.
Take a look: www.getdropbox.com