All posts in the Subversion category

Installing and Configure Subversion, WebDav Protocol with SSL Encryption (https ://) On Ubuntu Server

Published July 29, 2009 by Siva


Subversion is an open-source version control system. Using subversion you can record the history of source files and directories. It manages file and directories over time. A tree of files is placed into a central repository. The repository is much like an ordinary file server, except that it remembers every change ever made to files and directories.

Installation Package:-

ü      Subversion

ü      Subversion-tools

ü      Apache2

ü      Libapache2-svn

ü      Ssl-cert

ü      Openssl

The following commands:

$ sudo apt-get installs subversion subversion-tools apache2 libapache2-svn ssl-cert openssl

Create a Subversion Repository:-

The following commands:

   $ sudo mkdir /home/svn
   $ cd /home/svn
   $ sudo mkdir repos 
   $ sudo addgroup subversion       
   $ sudo adduser sureshkumar subversion
 $ sudo chown –R www-data:subversion /home/svn/repos
   $ sudo chmod –R g+rws /home/svn/repos

The subversion repository can be created using the following command:

   $ sudo svnadmin create /home/svn/repos

Creating Certificates for https:-

Generating a Certificate Signing Request (CSR)

To generate the keys for the Certificate Signing Request (CSR) run the following command from a terminal prompt:

$ openssl genrsa -des3 -out server.key 1024

To create the CSR:-

            run the following command at a terminal prompt:
$ openssl req -new -key server.key -out server.csr

Creating a Self-Signed Certificate:-

To create the self-signed certificate, run the following command at a terminal prompt:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Installing the Certificate:-

You can install the key file server.key and certificate file server.crt, or the certificate file issued by your CA, by running following commands at a terminal prompt:

sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private
Now simply configure any applications, with the ability to use public-key cryptography, to use the certificate and key files. For example, Apache can provide HTTPS.

To configure Apache for HTTPS add the following three lines to the /etc/apache2/sites-available/subversion file

SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

Configure Apache Server (https) the Repository:-

         We need to be sure the right modules are enabled

$ a2enmod dav

$ a2enmod dav_svn

We must set up virtual host for subversion server. File that you can put in /etc/apache2/sites-available/default (original file).so we can copy the original file (default) to duplication file (subversion).

$ sudo cp /etc/apache2/sites-available/default  /etc/apache2/sites-available/subversion.

Edit file $ sudo vim /etc/apache2/sites-available/subversion

      ServerAdmin webmaster@localhost
         SSLEngine on
         SSLCertificateFile /etc/ssl/certs/server.crt
         SSLCertificateKeyFile /etc/ssl/private/server.key
  <Location /repos>
        DAV svn
        SVNPath /home/svn/repos
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /etc/apache2/dav_svn.passwd
      #Required authentication
        Require valid-user
      # Require encryption
      ErrorLog /var/log/apache2/error.log
      LogLevel warn
      CustomLog /var/log/apache2/access.log combined
      ServerSignature On

Symbolic link:- 
Be sure to make a symbolic link to that file in /etc/apache2/sites-enabled:

$ ln –s  /etc/apache2/sites-available/subversion/  /etc/apache2/sites-enabled

Open Port Number:-
Add "Listen 443" to /etc/apache2/ports.conf:

$ sudo vim /etc/apache2/ports.conf
             Listen 443   
Subversion main configuration file:-

Edit /etc/apache2/mods-available/dav_svn.conf configuration file and follow the instructions:

$ sudo vim /etc/apache2/mods-available/dav_svn.conf

  <Location /repos>
        DAV svn
        SVNPath /home/svn/repos
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /etc/apache2/dav_svn.passwd
        Require valid-user

User authentication:-

To add the first user, you can run the following command:

$ sudo htpasswd -c /etc/apache2/dav_svn.passwd suresh

Note: If you have just installed SVN, the passwd file will not yet exist and needs to be created using the "-c" switch. Adding any users after that should be done without the "-c" switch to avoid overwriting the passwd file.

Direct repository you can run the following command:
$ sudo svn co file:///home/svn/repos

You should start apache service
$ sudo /etc/init.d/apache2 start 

Subversion Installation Guide Under Windows

Published July 26, 2009 by Siva

A) Download Subversion

You’ll need the latest version of..

The Subversion Windows binaries

The “run Subversion as a windows service” wrapper

The TortoiseSVN shell integration utility

B) Install Subversion

Execute the setup file & complete the installation.

The Subversion bin path automatically set in windows environment variables.

Default location is : C:\Program Files\Subversion\bin

You’ll also need another environment variable, SVN_EDITOR, set to the text editor of your choice. I used c:\windows\notepad.exe


C) Create a Repository

  1. Open a command prompt and type
svnadmin create "E:\SVN_Repo"
  1. Navigate to the folder we just created. Within that folder, uncomment the following lines in the /conf/svnserve.conf file:
anon-access = read
auth-access = write
password-db = passwd

Next, uncomment these lines in the /conf/passwd file:

Siva = letmein
admin = asd123

D) Verify that everything is working

  1. Start the subversion server by issuing this command in the command window:
            svnserve --daemon --root "E:\SVN_Repo"
  1. Create a project by opening a second command window and entering this command:
            svn mkdir svn://localhost/myproject

It’s a standard Subversion convention to have three folders at the root of a project:


  1. At this point, Notepad should launch:


Enter any comment you want at the top of the file, then save and exit.

  1. You’ll now be prompted for credentials. In my case I was prompted for the administrator credentials as well:
            Authentication realm:  0f1a8b11-d50b-344d-9dc7-0d9ba12e22df
            Password for 'Administrator': *********
            Authentication realm:  0f1a8b11-d50b-344d-9dc7-0d9ba12e22df
            Username: Siva
           Password for 'Siva': ************
Committed revision 1.

Congratulations! You just checked a change into Subversion!

E) Start the server as a service

  1. Stop the existing command window that’s running svnserve by pressing CTRL+C.
  2. Copy the file SVNService.exe from the zip file of the same name to the subversion\bin folder.
  3. Install the service by issuing the following commands:
   svnservice -install --daemon --root "E:\SVN_Repo"
   sc config svnservice start= auto
  net start svnservice
  1. Test the new service by listing all the files in the repository:
   svn ls svn://localhost/
You should see the single project we created earlier, myproject/ 

F) Set up the shell extension (SVN Client Configuration)

  1. Run the TortoiseSVN installer. It will tell you to restart, but you don’t need to.
  2. Create a project folder somewhere on your hard drive. Right click in that folder and select “SVN Checkout…”
    type svn://localhost/myproject/ for the repository URL and click OK.
  3. Create a new file in that directory. Right click the file and select “TortoiseSVN, Add”


The file hasn’t actually been checked in yet. Subversion batches any changes and commits them as one atomic operation. To send all your changes to the server, right click and select “SVN Commit”


And we’re done!

You now have a networked Subversion server and client set up on your machine.

Note that the default port for svnserve is 3690.