Difference between revisions of "SVN server installation (Linux)"

(2. Adjust rights)
Line 87: Line 87:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
Register SVN server to server startup
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
cd /etc/init.d
 
cd /etc/init.d
Line 166: Line 167:
 
The SVN client version must match the server version for better performances and to avoid errors.
 
The SVN client version must match the server version for better performances and to avoid errors.
  
==Graphical SVN client==
 
  
 
+
==Windows==
===Windows===
 
 
Tortoise SVN is the best one available.
 
Tortoise SVN is the best one available.
 
http://tortoisesvn.tigris.org/  
 
http://tortoisesvn.tigris.org/  
  
 +
!! During installation, don't forget to install the '''svn command line tools''' !!
 +
 +
 +
==Linux==
 +
 +
===Command line client==
 +
<syntaxhighlight lang="bash">
 +
apt-get install subversion
 +
</syntaxhighlight>
 +
Then you can use the ''svn'' command:
 +
* svn co --username=''yourUserName'' --password=''yourpassword'' http://path-to-your-svn
 +
* svn add ''file''
 +
* svn commit -m "my revision comment"
  
===Linux===
+
===Graphical client===
 
RabbitVCS is a good alternative to tortoise SVN: http://rabbitvcs.org/
 
RabbitVCS is a good alternative to tortoise SVN: http://rabbitvcs.org/
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
apt-get install rabbitvcs-cli rabbitvcs-core rabbitvcs-gedit rabbitvcs-nautilus
 
apt-get install rabbitvcs-cli rabbitvcs-core rabbitvcs-gedit rabbitvcs-nautilus
 
</syntaxhighlight>
 
</syntaxhighlight>

Revision as of 15:19, 26 January 2014

Subversion is used to managed file revisions, branches and application releases. You have to install a SVN server, then a client on each remote computer.


SVN server

installation

Required package

apt-get install subversion

Source folder You must indicate to subversion how it's going to work

mkdir /var/svn
mkdir /var/svn/myRepository

Set rights

chown -R www-data:www-data /var/svn/myRepository 
chmod -R 777 /var/svn/myRepository

→ Use "www-data" user:group if you want to setup web access through HTTP(S) protocol later on.


Server automatic startup

Create SVN startup script

vim /etc/init.d/svnServer

Put the following content

#!/bin/sh
### BEGIN INIT INFO
# Provides:             svn
# Required-Start:       $remote_fs
# Required-Stop:        $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    SVN server
### END INIT INFO

do_start () {
	svnserve -d -r /var/svn --pid-file /var/run/svnserve.pid
}
do_stop () {
	start-stop-daemon --stop --quiet --pidfile /var/run/svnserve.pid
}

case "$1" in
	start)
  		do_start
 		;;
 	stop)
 		do_stop
 		exit $?
 		;;
 	restart)
 		do_stop
		sleep 1s
 		do_start
 		;;
	*)
		echo "Usage: $0 start|stop|restart" >&2
		exit 3
		;;
esac

Set execution flags:

chmod 750 /etc/init.d/svnServer


Update boot sequence

Create symlink

ln -s /etc/init.d/svnServer /usr/bin/svnServer

Register SVN server to server startup

cd /etc/init.d
update-rc.d svnServer defaults


Start SVN server

/etc/init.d/svnServer start


How to remove SVN from boot?

Just execute the following sequence

update-rc.d -f svnserve remove


SVN repository

To do any advanced task, you've to use "svnadmin" To create repository you have to: 1. Create folder 2. Defines rights 3. Creates users


1. Create root folder

svnadmin create /var/svn/myRepo

Create repo structure

cd /var/svn/myRepo
mkdir trunk
mkdir tags
mkdir branches
chmod -R 755 */


2. Adjust rights

vim /var/svn/myRepo/conf/svnserve.conf

Adjust values:

anon-access = none		→ disable anonymous access
auth-access = write		→ allow read / write to all users
password-db = passwd		→ password required to log-in
realm = 'java'		→ Name of the current repo (without quotes!)

3. Create users

vim /var/svn/myRepo/conf/passwd

Restart your server to use the new repository.


Repository access

You can use the repository with the following SVN URL: svn://server/java


LDAP + WebSVN access

Instead of “svn://” + dedicated SVN user you can use “https://myServer/dav_svn/” + LDAP user. Please read the Apache 2 documentation to get more information.

>> TODO : add link <<


SVN client

The SVN client version must match the server version for better performances and to avoid errors.


Windows

Tortoise SVN is the best one available. http://tortoisesvn.tigris.org/

!! During installation, don't forget to install the svn command line tools !!


Linux

=Command line client

apt-get install subversion

Then you can use the svn command:

  • svn co --username=yourUserName --password=yourpassword http://path-to-your-svn
  • svn add file
  • svn commit -m "my revision comment"

Graphical client

RabbitVCS is a good alternative to tortoise SVN: http://rabbitvcs.org/

apt-get install rabbitvcs-cli rabbitvcs-core rabbitvcs-gedit rabbitvcs-nautilus