SVN server installation (Linux)

Revision as of 15:13, 26 January 2014 by WikiFreak (talk | contribs) (Created page with "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= ==i...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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
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


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.

Graphical SVN client

Windows

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


Linux

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

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