Subversion

From KevinWiki

(Difference between revisions)
Jump to: navigation, search
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.

Personal tools