Встала задача поднять систему контроля версий во внутренней сети для двоих человек. Давайте посмотрим как это делается. Я покажу как это сделать, когда нет времени разбираться, а рабочая система нужна еще позавчера.
Первое что нужно сделать - это установить саму 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