====== Кратко о настройке Subversion ======
Встала задача поднять систему контроля версий во внутренней сети для двоих человек. Давайте посмотрим как это делается. Я покажу как это сделать, когда нет времени разбираться, а рабочая система нужна еще позавчера.
Первое что нужно сделать - это установить саму Subversion. В Дебиан это делается достаточно просто:
# aptitude install subversion subversion-tools
На локальной системе понадобятся еще такие пакеты, как kdesvn и kdesvn-kio-plugins , в Windows понадобится установить программу TortoiseSvn (как-то так она называлась)
Если все нужное ПО установлено давайте продолжим...
Для начала создадим конфиг файл, для стартового скрипта:
**/etc/subversion.conf**
#projects directory
root=/var/svn
Здесь я просто указал директорию , в которой будут находится проекты.
Идем дальше. Пишем стартовый скрипт.
**/etc/init.d/subversion**
#! /bin/sh
#
# Скрипт для запуска Subversion-сервера (svnserve)
#
#
NAME=svnserve
DAEMON=/usr/bin/svnserve
PIDFILE=/var/run/svnserve.pid
PATH=/bin:/usr/bin:/sbin:/usr/sbin
start () {
projects=`sed '/^#/ d;' /etc/subversion.conf|awk -F '=' '{print $2}'`
svnserve --daemon -r $projects --pid-file $PIDFILE
return $?
}
stop () {
PID=`cat $PIDFILE 2>/dev/null`
start-stop-daemon --stop --quiet --pidfile $PIDFILE --name svnserve
#
# Мы должны дождаться пока svnserve действительно завершит работу.
#
sleep 2
if test -n "$PID" && kill -0 $PID 2>/dev/null
then
echo " Waiting"
cnt=0
while kill -0 $PID 2>/dev/null
do
cnt=`expr $cnt + 1`
if [ $cnt -gt 24 ]
then
echo "Error!"
return 1
fi
sleep 5
echo "Ok!"
done
echo "Ok!"
return 0
else
echo "Ok!"
return 0
fi
}
case "$1" in
start)
echo "Стартует сервис Subversion " "svnserve"
start
;;
stop)
echo "Останавливается сервис Subversion" "svnserve"
stop
;;
restart)
echo "Перезапускается сервис Subversion" "svn serve"
stop
start
;;
*)
echo "Используйте : /etc/init.d/$NAME {start|stop|restart}"
exit 3
;;
esac
exit 0
Поясню лишь одну строку: projects=`sed '/^#/ d;' /etc/subversion.conf|awk -F '=' '{print $2}'` - она присваивает переменной projects ту самую корневую директорию, которая прописана в /etc/subversion.conf. После чего запускается сервер с параметрами svnserve --daemon -r $projects --pid-file $PIDFILE - где опция -r запрещает серверу искать репозитории выше указанной директории
Осталось лишь одно - заставить запускаться Subversion при старте системы. Нет ничего проще! просто пропишем в файл **/etc/rc.local** следующую строку: /etc/init.d/subversion
Вот и все готово. Можно перезагрузиться и проверить стартанул ли сервис. Ах да... не забываем о правах:
# chmod a+x /etc/init.d/subversion
Есть и другой способ заставить стартовать сервис автоматически:
# update-rc.d -f subversion defaults