Установка Subversion на FreeBSD

3 февраля 2009
Просмотров: 8148Обсудить
Рубрика: FreeBSD

Я не буду рассказывать о том, что такое Subversion  и для чего оно все надо.  Скажу лишь только, что если вы не пробовали этот пакет, то обязательно попробуйте. Он будет очень полезен программистам-одиночкам и просто незаменим при работе в команде. Конечно, его можно использовать не только для управлением проекта, но и для управления версиями конфигурационных файлов, например.

И так... приступим.

Это простейший (но достаточный) пример , который позволит пользоваться репозиторием по по HTTP/HTTP.

Если дело дошло до установки Subversion, значит Apache  уже настроен и работает.

В таком случае надо пересобрать его с поддержкой Berkeley DB:

portupgrade -f -m "WITH_BERKELEYDB=db42" www/apache22

Ну или установить, предварительно сконфигурировав для использования все той же Berkeley DB:

cd /usr/ports/www/apache22
make WITH_BERKELEYDB=db42 install

У меня индеец стоял, поэтому я только пересобрал его.

Далее поставим собственно SVN:

cd /usr/ports/devel/subversion
make WITH_MOD_DAV_SVN= install

По идеи все самое необходимое у нас есть, осталось только настроить ;)

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

# собственно наше хранилище
mkdir /usr/local/www/repo

Для создания нового проекта используется команда :

svnadmin create /usr/local/www/repo/project
#/usr/local/www/ - путь к хранилищу. project - название проекта.

Выставим нужные права:

chown -R www:www /usr/local/www/repo

Доступ к репозиторию надо закрыть (чтоб не шастали кто попало ;) ). Создадим файл паролей:

htpasswd -c /usr/local/etc/svn.passwd user
#Опция -c перезапишет файл в случае его существования
# user - имя пользователя для доступа. После этого система попросит ввести и повторить пароль для этого пользователя.

Ну и последние штрихи - внести настройки модуля dav_svn в конфиг Apache.

Для этого надо отредактировать файл

/usr/local/etc/apache22/httpd.conf

Я решил не засорять основной конфиг, поэтому создал новый файлик

/usr/local/etc/apache22/Includes/svn.conf со следующим содержимым:

  <Location /svn>
      DAV svn
      SVNParentPath /usr/local/www/repo #путь к репозиторию
      AuthType Basic
      AuthName "Subversion repository"
      AuthUserFile /usr/local/etc/svn.passwd # путь к файлам паролей
      Require valid-user
  </Location>

При этом в httpd.conf у меня имеется строчка :

Include etc/apache22/Includes/*.conf

То бишь подгрузить все конфиги из инклудов.

Рестарт апача:

apachectl restart

Если все прошло успешно, то набрав в браузере http://server.com/svn/project/ вы должны увидеть запрос на ввод пароля и, после авторизации,  что-то типа :

project - Revision 1: /

Если это так, то мы имеем рабочий репозиторий.  Давайте теперь зальем начальную версию проекта в репозиторий. Для этого используется команда вида:

svn import /path/to/real_project file:///path/to/project -m "First Import"

Я же, чтоб не прописывать полный пусть , просто перешел в папку с реальным проектом и использовал

svn import . file:///usr/local/www/repo/fotodesigner -m "First Import"
# -m - добавить комментарий

Проверить работоспособность можно в любом клиенте (например,TortoiseSVN (http://tortoisesvn.tigris.org/)).

Я для разработки и управления версиями привык использовать Aptana Studio (http://aptana.org)

Вот и все. Далее вам , вероятней всего , надо будет разобраться с управлением версиями, например:

  • http://rubyclub.com.ua/messages/show/21--%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F%D0%BC%D0%B8-%D0%B2-Subversion
  • http://svnbook.red-bean.com/

Надеюсь все получится ;)

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
Метки: ,


Комментариев: 4
Подписаться на комментарии по RSS
  • #12010-11-16 в 13:59:19vanesh (анонимно)

    Делаю все как у вас, один в один

    При перезапуске апача получаю ошибку

    SVNParentPath takes one argument, specifies the location in the filesystem whose subdirectories are assumed to be Subversion repositories.

    Что делать?


  • #22010-11-16 в 14:03:39yaap

    @vanesh (анонимно)

    http://russtaylor.co.uk/2009/01/problem-starting-apache-service-for-subversion/

    http://www.google.com.ua/search?q="SVNParentPath+takes+one+argument%2C+specifies"

    Это частный случай, надо сидеть и разбираться, но вроде как по 1-й ссылке проблему решили, проблема была в пробеле в пути SVNParentPath. Заключите в кавычки содержимое, и будет вам счастье =))

    зы: гугль решает! cool grin


  • #32011-05-03 в 18:58:02Alex (анонимно)

    Спасибо за статью, проблема не в кавычках, хотя Google выдаёт именно такое решение первым. После того, как убрал комменты к строкам с путями - всё заработало.


  • #42014-11-11 в 13:35:14bolahg (анонимно)

    portupgrade -f -m "WITH_BERKELEYDB=db42" www/apache22

    После этого вероятность 90% что ваш свн не встанет.

    Перед этой процедурой обязательно читать вот это /usr/ports/UPDATING

    а потом вот это cd /usr/ports && make search name=subversion.

    После этого только выбирать какая вам версия BERKELEYDB нужна.


Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)