Когда идет колективная разработка какого-либо проекта приходится прибегать к разного рода извращениям для совместного доступа к коду. Например FTP. FTP это удобно, но жто не покажет что произошло, какие файлы были изменены и как. Поэтому люди пользуются системами контроля версий.
Одним из таких является Subversion. На мой взгляд он лучший, хотя многие идут в сорону CVS или Git, а может и Bazaar.
Мы остановимся на Subversion.
Итак…
Задача: Установить и настроить систему контрля версий Subversion
Решение: Subversion + Apache + Debian/Ubuntu
Для начала убедимся что у нас установлен Apache. О том как это делать рассказывать сейчас не буду.
Apache нам нужен, так как Subversion встанет как его модуль.
Итак. Устанавливаем Subversion:
$ sudo apt-get install subversion libapache2-svn
Теперь надо выбрать папку, в которой поселятся наши репозитории.
Она может быть любой, но /dev/null я все же не рекомендую. =)
И заодно создадим первый проект.
$ sudo svnadmin create /opt/svn/repos/myproject
Измени права доступа к /opt/svn/repos на www-data для того, что бы Apache имел полный доступ к этой директории:
$ sudo chown -R www-data: /opt/svn/repos
Изменим /etc/apache2/mods-available/dav_svn.conf:
<Location /svn> DAV svn SVNParentPath /opt/svn/repos/ AuthType Basic AuthName "My Repository" AuthUserFile /opt/svn/passwd Require valid-user </Location>
Создадим администратора (вместо admin можете вписать что угодно):
$ sudo htpasswd -c /opt/svn/passwd admin
Теперь можем создать аккаунты друзьям (по сути то же самое, но без параметра -c ):
$ sudo htpasswd /opt/svn/passwd user
Теперь активируем модули:
$ sudo a2enmod dav dav_fs dav_svnИ наконец перезапустим Apache:
$ sudo /etc/init.d/apache2 force-reload
Вот и все, наслаждаемся!
Доступ до репозиториев будет и через веб-браузер и через специальный софт.
Допустим, Вы создавали сервер по адресу 192.168.0.1. тогда у Вас будет доступ до своего проэкта по адресу http://192.168.0.1/svn/myproject. Браузер спросит у Вас логин и пароль. После этого Вы увидите содержание своего репозитория.





Alex Snet
18 Янв, 2009
Да, хочу заметить, что если вам будет нужен сервер под SVN – то я могу предоставить =)
zimyand
30 Янв, 2009
Кратко и понятно. Единственный вопрос – где вводить пароль для admin” и “user”? В тексте не встретил.
zimyand
30 Янв, 2009
@zimyand
Затупил. Пароль спрашивается после того как ввел команду
Alex Snet
31 Янв, 2009
@zimyand
Рад, что разобрались и это Вам погло. Приходите в мой блог чаще. =)
adw0rd
08 Фев, 2009
Напишу скоро про SVN под FreeBSD
Alex Snet
09 Фев, 2009
@adw0rd, жду =)
adw0rd
26 Фев, 2009
Написал
http://adw0rd.ru/2009/freebsd-subversion/
ca1
15 Апр, 2009
А как можно ограничить доступ? Мне нужно чтобы, например, user мог видеть только определенный проект и определенную директорию.
VasyOk
24 Янв, 2010
Подскажите пожалуйста как красиво сделать.
Нужно чтобы проекты
/home/svn-repos/project1
/home/svn-repos/project2
/home/svn-repos/project3
были доступны
https://svn.site.com/svn/project1
https://svn.site.com/svn/project2
https://svn.site.com/svn/project3
Спасибо.
VasyOk
24 Янв, 2010
Отбой
Сам разобрался. Спасибо за статью.