wiki:freebsd:svn

Subversion (SVN) сервер

Установка и настройка Subversion (SVN) сервера под управлением FreeBSD

cd /usr/ports/devel/subversion
make && make install && make clean

Создадим каталог для хранения репозитория:

mkdir -p /home/svn/repository

Добавим группу и пользователя svn для разграничения привилегий к файлам Subversion:

pw group add svn
pw user add svn -g svn -s /usr/sbin/nologin -d /home/svn/repositories/

Добавим в файл /etc/rc.conf добавляем следующие строки:

# Стартуем SVN при загрузке
svnserve_enable="YES"
# Указываем путь к каталогу, где будет хранится репозиторий
svnserve_data="/home/svn/repository"
# Указываем пользователя и группу для определения привелегий доступа к файлам SVN
svnserve_user="svn"
svnserve_group="svn"

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

svnadmin create /home/svn/repository/

Выставим права:

chown -R svn:svn /home/svn/

Настроим авторизированный доступ к репозиторию:

cd /home/svn/repository/conf/
ee svnserve.conf

Раскомментируем, изменяем строки, как показано ниже, и сохраняем файл.

anon-access = none
auth-access = write
password-db = passwd

Создаем пользователей, для доступа к SVN:

cd /home/svn/repository/conf
ee passwd

Добавляем нужное количество пользователей в формате логин = пароль и сохраняем:

developer = Pa$$w0rd

Стартуем SVN сервер:

/usr/local/etc/rc.d/svnserve start

Вот и все, в принципе. Ваш SVN сервер настроен, теперь можно взять SVN клиент и попробовать подключиться к серверу. Если настройки произведены правильно, то в клиенте выпадет окошко для ввода логина/пароля.

P.S. Для тех кто разрабатывает веб проекты и хранит репозиторий на том же сервере где находится веб сервер, для удобства, можно сделать автоматическую публикацию текущего состояния разрабатываемого проекта на веб сервере после утверждения изменений в SVN клиенте. Для этого необходимо сделать следущее:

cp /home/svn/repository/hooks/post-commit.tmpl /home/svn/repository/hooks/post-commit
chmod 755 /home/svn/repository/hooks/post-commit
ee /home/svn/repository/hooks/post-commit

Привести содержимое файла к следующему виду.

post-commit.sh
#!/bin/sh
/usr/local/bin/svn up '/usr/local/www/nginx/vhosts/plastilin.org.ua/html' --username 'developer' --password 'Pa$$w0rd'

Находясь в корневой директории веб сервера (/usr/local/www/nginx/vhosts/plastilin.org.ua/html) создать рабочую копию проекта, выполнив команду:

/usr/local/bin/svn co file:///home/svn/repository --username 'developer' --password 'Pa$$w0rd'

Перейти в корневую директорию веб сервера. Далее в каталог repository и все содержимое перенести на уровень выше, то-есть в папку /html. Удалить каталог /repository в корневой директории веб сервера.

Теперь после проведения коммита последняя версия проекта будет публиковаться на веб сервере.

Источник http://blog.plastilin.org.ua

  • wiki/freebsd/svn.txt
  • Последние изменения: 2019/10/05 14:28
  • admin