Subversion
From KevinWiki
Line 59: | Line 59: | ||
-Edit <code>/etc/apache2/mods-enabled/dav_svn.conf</code> file | -Edit <code>/etc/apache2/mods-enabled/dav_svn.conf</code> file | ||
- | <Location /svn> | + | <Location /svn/myproject> |
DAV svn | DAV svn | ||
SVNPath /opt/svn/myproject | SVNPath /opt/svn/myproject | ||
Line 70: | Line 70: | ||
</LimitExcept> | </LimitExcept> | ||
</Location> | </Location> | ||
+ | |||
+ | |||
+ | -'''To set up with multiple virtual hosts create <code>/etc/apache2/sites-available/svn</code> file instead of editing <code>/etc/apache2/mods-enabled/dav_svn.conf</code> file.''' | ||
+ | <Location /svn/myproject> | ||
+ | DAV svn | ||
+ | SVNPath /opt/svn/myproject | ||
+ | # SVNParentPath /opt/svn/ | ||
+ | AuthType Basic | ||
+ | AuthName "lckymn.com subversion repository" | ||
+ | AuthUserFile /etc/subversion/.passwd | ||
+ | # <LimitExcept GET PROPFIND OPTIONS REPORT> | ||
+ | Require valid-user | ||
+ | # </LimitExcept> | ||
+ | '''SSLRequireSSL''' | ||
+ | </Location> | ||
+ | |||
+ | $ cd /etc/apache2/sites-available | ||
+ | $ sudo a2ensite svn | ||
+ | -<code>SSLRequireSSL</code> is added to use SSL when accessing svn. | ||
-To limit any connection to the SVN-Server (private SVN), remove the lines <LimitExcept ...> and </LimitExcept>. | -To limit any connection to the SVN-Server (private SVN), remove the lines <LimitExcept ...> and </LimitExcept>. | ||
- | <Location /svn> | + | <Location /svn/myproject> |
DAV svn | DAV svn | ||
SVNPath /opt/svn/myproject | SVNPath /opt/svn/myproject |
Revision as of 08:29, 7 November 2008
Contents |
Subversion (SVN)
Installation
-Install Subversion from the repository
$ sudo apt-get install subversion
-Add group subversion
$ sudo addgroup subversion Adding group `subversion' (GID ****) ... Done.
-Add yourself and www-data
(the Apache user) as users to this group
$ sudo adduser username subversion Adding user `username' to group `subversion' ... Adding user username to group subversion Done. $ sudo adduser www-data subversion Adding user `www-data' to group `subversion' ... Adding user www-data to group subversion Done.
Create SVN Home
-Create SVN home
$ sudo mkdir /opt/svn $ cd /opt/svn $ sudo mkdir myproject $ sudo chown -R www-data myproject $ sudo chgrp -R subversion myproject $ sudo chmod -R g+rws myproject
-Create repository
$ sudo svnadmin create /opt/svn/myproject
or
$ sudo svnadmin create --fs-type fsfs /opt/svn/myproject
-to use WebDAV, repeat the chmod -R g+rws myproject command again as because svnadmin will create directories and files without group write access.
Access via WebDAV protocol (http://
)
-Install libapache2-svn
$ sudo apt-get install libapache2-svn ... Enabling module dav. Enabling module dav_svn. Run '/etc/init.d/apache2 restart' to activate new configuration!
-Edit /etc/apache2/mods-enabled/dav_svn.conf
file
<Location /svn/myproject> DAV svn SVNPath /opt/svn/myproject # SVNParentPath /opt/svn/ AuthType Basic AuthName "lckymn.com subversion repository" AuthUserFile /etc/subversion/.passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
-To set up with multiple virtual hosts create /etc/apache2/sites-available/svn
file instead of editing /etc/apache2/mods-enabled/dav_svn.conf
file.
<Location /svn/myproject> DAV svn SVNPath /opt/svn/myproject # SVNParentPath /opt/svn/ AuthType Basic AuthName "lckymn.com subversion repository" AuthUserFile /etc/subversion/.passwd # <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user # </LimitExcept> SSLRequireSSL </Location>
$ cd /etc/apache2/sites-available $ sudo a2ensite svn
-SSLRequireSSL
is added to use SSL when accessing svn.
-To limit any connection to the SVN-Server (private SVN), remove the lines <LimitExcept ...> and </LimitExcept>.
<Location /svn/myproject> DAV svn SVNPath /opt/svn/myproject # SVNParentPath /opt/svn/ AuthType Basic AuthName "lckymn.com subversion repository" AuthUserFile /etc/subversion/.passwd # <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user # </LimitExcept> </Location>
-use SVNParentPath if there are multiple repositories under a single directory (e.g. /opt/svn/project1, /opt/svn/projec2, /opt/svn/project3)
<Location /svn> DAV svn # SVNPath /opt/svn/myproject SVNParentPath /opt/svn/ AuthType Basic AuthName "lckymn.com subversion repository" AuthUserFile /etc/subversion/.passwd # <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user # </LimitExcept> </Location>
-Create user and password
$ sudo htpasswd -c /etc/subversion/.passwd user_name
-Restart Apache server
$ sudo /etc/init.d/apache2 restart
Access via WebDAV protocol with SSL encryption (https://
)
-Enable SSL in your Apache server.