УстановкаДля начала соберем Apache с поддержкой Berkley DB, так как я предпочитаю именно этот способ хранения данных.
cd /usr/ports/www/apache22/
make install WITH_BERKELEYDB=db42
Если Apache уже установлен, то
make reinstall WITH_BERKELEYDB=db42
если и это не поможет, то
make deinstall && make clean
можно еще зачистить
rm -rf /usr/ports/distfiles/*
Далее, устанавливаем Subversion
cd /usr/ports/devel/subversion
make config
выбираем
MOD_DAV_SVN и
BDBmake install
Проверьте, есть ли записи в
/usr/local/etc/apache22/httpd.confLoadModule dav_svn_module libexec/apache22/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so
Где «libexec/apache22/» — ваш путь до модулей апача.
Перезапускаем apache
apachectl restart
Создаем репозиторийСоздаём каталог для репозитория
mkdir -p /home/svn/repos
Каталог для вашего проекта
svnadmin create /home/svn/repos/_project_/
_project_ — заменить на имя вашего проекта (каталога).
Импортируем проект в репозиторий
cd /home/_project_/
svn import ./ file:///home/svn/repos/_project_ --message 'Initial repository layout'
Установим права веб-сервера
chown -R www:www /home/svn/
Добавить в
/usr/local/etc/apache22/httpd.conf<location /svn>
DAV svn
# разрешает выдавать перечень всех доступных хранилищ в папке SVNParentPath
SVNListParentPath on
SVNParentPath /home/svn/repos
SVNPathAuthz off
# включения базовой аутентификации, т.е. имя_пользователя/пароль
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/svn/svn-auth-file
# предписывает, что только пользователям, предоставившим правильные имя_пользователя/пароль,
# будет разрешён доступ к URL
Require valid-user
</location>
Теперь, создадим пользователей для доступа к вашему проекту
htpasswd -cmb /home/svn/svn-auth-file _user_ _password_
и добавляем пользователей, так как ключ «-c» указывает на создание файла
htpasswd -mb /home/svn/svn-auth-file _user_ _password_
Где _user_ и _password_ — имя и пароль соответственно.
Ну вот и все, удачного checkout'a!
svn checkout http://_domain_/svn/_project_
Возможные ошибки1. Не можете сделать коммит, выдаёт ошибку доступа? Тогда задайте права 777 для всех папок внутри папки репозитория.
2. Если Вы используете nginx в связке с apache, то обязательно удалите секцию кеширования файлов по типу .js, .png, .jpg и т.д. для поддомена где расположен svn.