Как настроить SVN сервер?

Настройка SVN сервера на примере Ubuntu

В этой статье мы установим и настроим SVN сервер на OC Ubuntu 12.10 server Все действия в данной статье необходимо выполнять от пользователя root, для этого необходимо получит привилегии суперпользователя:

sudo su -

либо перед каждой командой писать:

sudo

Установка

apt-get install subversion

Создадим папку, в которой будет располагаться репозиторий:

mkdir -p /srv/svn/repo

Создадим сам репозиторий:

svnadmin create /srv/svn/repo

Добавим пользователя - владельца репозитория и от этого пользователя будет запущен даемон:

useradd subversion --create-home --home-dir /srv/svn --shell /sbin/nologin

Назначим ему права на папку репозитория:

chown -R subversion:subversion /srv/svn
chmod -R ug+rw /srv/svn

При установке не создается стартовый скрипт SVN сервера, создаем его:

cat > /etc/init.d/svnserve << "EOF"
#!/bin/sh -e
# svnserve - brings up the svn server so anonymous users
# can access svn

# Get LSB functions
. /lib/lsb/init-functions
. /etc/default/rcS

SVNSERVE=/usr/bin/svnserve
SVN_USER=subversion
SVN_GROUP=subversion
SVN_REPO_PATH=/srv/svn

# Check that the package is still installed
[ -x $SVNSERVE ] || exit 0;

case "$1" in
        start)
                log_begin_msg "Starting svnserve..."
                umask 002
                if start-stop-daemon --start \
                --chuid $SVN_USER:$SVN_GROUP \
                --exec $SVNSERVE \
                -- -d -r $SVN_REPO_PATH; then
                        log_end_msg 0
                else
                        log_end_msg $?
                fi
        ;;

        stop)
                log_begin_msg "Stopping svnserve..."
                if start-stop-daemon --stop --exec $SVNSERVE; then
                log_end_msg 0
                else
                log_end_msg $?
                fi
        ;;

        restart|force-reload)
                "$0" stop && "$0" start
        ;;

        *)
        echo "Usage: /etc/init.d/svnserve {start|stop|restart|force-reload}"
                exit 1
        ;;
esac

exit 0

EOF

Делаем его исполняемым:

chmod a+x /etc/init.d/svnserve

и добавляем в автозагрузку:

update-rc.d svnserve defaults

Настройка

Конфигурационный файл и файлы с пользователями и настройками доступа хранятся в папке conf в корне репозитория (в нашем примере это /srv/svn/conf)

Основной конфигурационный файл /srv/svn/conf/svnserve.conf:

[general]
# Доступ c анонимным доступом ("write", "read" или "none")
anon-access = none
# Доступ для авторизованых пользователей:("write", "read" или "none")
auth-access = write
# Имя файла с пользователями
password-db = passwd
# Имя файла с правами
authz-db = authz

Файл содержащий пользователей и пароли (пароли хранятся в открытом виде) /srv/svn/conf/passwd:

[users]
user1 = password1
user2 = password2

Файл содержащий группы пользователей и права на репозиторий или на часть его /srv/svn/conf/athz:

# Группы
[groups]
group1 = user1,user2

# Права на корень
# группе group1 только для чтения
# пользователю user2 полный доступ
# всем остальным запретить доступ
[/]
@group1 = r
&user2 = rw
* = 

На этом настройка закончена, запустите cервис SVN для работы:

/etc/init.d/svnserve start

SVN сервер использует порт TCP 3690 - не забудьте открыть его на фаерволе.

Вы можете задать вопрос по статье специалисту.

Компьютеру или ноутбуку не хватает мощности? Необходима комплексная модернизация или простая замена жесткого диска? 

Помните, что все действия вы выполняете на свой страх и риск — загрузка неверных данных может повлечь за собой крах системы и потерю информации.
Тестирование в тестовой среде никто не отменяет.
Администрация сайта не несет ответственность за ваши действия.
Вся информация на сайте носит исключительно справочный характер и не является публичной офертой, определяемой в Статье 437 Гражданского кодекса Российской Федерации.