How to install subversion server
I'd like to install a Subversion server on my Ubuntu machine.
What packages to I need? How do I create a repository and set a new user?
Solution 1:
There are many configurations for svn, here a some short instructions to get a basic svn repository available over http.
- Install required packages:
apt-get install subversion apache2 libapache2-svn
- Create an Directory-Structure:
mkdir -p /var/svn/repos/
- Create a Repository:
cd /var/svn/repos/
svnadmin create --fs-type fsfs <your-repository>
- Now Create your Project-Struckture to import in the repository:
mkdir -p /tmp/myproject/trunk /tmp/myproject/tags /tmp/myproject/branches
- Import the Project to the Repository:
svn import /tmp/myproject file:///var/svn/repos/<your-repository> -m "initial import"
- Make it accesseable over http:
cd /etc/apache2/sites-available
touch subversion.conf
vim subversion.conf
Now edit the empty file with this configuration:
NameVirtualHost *:80
<VirtualHost *:80>
<Location /svn>
ErrorDocument 404 default
DAV svn
SVNParentPath /var/svn/repos
SVNListParentPath off
Require valid-user
AuthType Basic
AuthName "subversion access"
AuthUserFile /var/svn/.htpasswd
AuthzSVNAccessFile /var/svn/authz
</Location>
</VirtualHost>
- enable dav_svn module for apache:
a2enmod dav_svn
- enable authz_svn module for apache:
a2enmod authz_svn
- enable VHost configuration:
a2ensite subversion.conf
- now restart the webserver:
/etc/init.d/apache2 restart
- Create an htpasswd:
htpasswd -c /var/svn/.htpasswd user
- Create the access control file for the repository:
touch /var/svn/authz
- edit the empty authz file:
vim /var/svn/authz
- Give read/write rights to for user:
[your-repository:/]
user = rw
Let's try to checkout the the repo over http: svn checkout http://your-server/svn/your-repository
Solution 2:
Start reading the manual. I am currently doing the same.
Once you have set up a repository with svnadmin create /path/to/repo
, you can use svnserve --root /path/to/repo
to make the repository available at svn://yourhost/
. Open TCP port 3690 if necessary.
It's possible to use SVN over HTTP, but I have not read that part yet :o
Solution 3:
You will need the subversion
package.
sudo apt-get update
sudo apt-get install subversion
This package contains the client, tools to crate a Subversion repository and the server.