Difference between revisions of "SVN server installation (Linux)"
Line 177: | Line 177: | ||
==Linux== | ==Linux== | ||
− | ===Command line client== | + | ===Command line client=== |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
apt-get install subversion | apt-get install subversion |
Revision as of 15:22, 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.
Contents
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