====== Кратко о настройке 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