« Работа с Exim | Главная | Репозитарии для CentOS 6 »

27.03.2010

Как установить SVN (subversion) на CentOS

Subversion tree illustration

Image via Wikipedia

Сегодня речь пойдет о том, как установить и настроить у себя SVN (subversion), многие знакомы с данной технологией и активно ей пользуются, т.к. она позволяет отслеживать все изменения в коде, который разрабатывает группа разработчиков.
Надеемся Вы уже подключили репозитарии, описанные в первой статье, поэтому перейдем далее.
Первым делом Вам необходимо поставить и настроить Apache, надеемся это уже сделано, если нет, подробнее как это сделать речь пойдет в следующих статьях.
И так приступим:
Первым делом нам необходимо установить сам subversion и модуль к Apache, это делается следующим образом:
yum install mod_dav_svn subversion
 
При установке он тянет за собой много зависимых пакетов, все устанавливается из репозитария Base
После того как все пакеты будут установлены - займемся настройкой svn под себя:
Первым делом настраиваем модуль апатча и соответствующий конфиг:
/etc/httpd/conf.d/subversion.conf
Чтобы модуль подгружался только при работе с svn расскомментируем строки:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
При этом в главном файле httpd.conf если эти строки есть, то их необходимо закоментить. 
Так же необходимо отредактировать следующие строки
 
  <IfModule dav_svn_module>
  <IfModule authz_svn_module>
  <Location /svn/>
      DAV svn
      SVNParentPath /home/svn/project
      SVNListParentPath on
      SSLRequireSSL
      #Satisfy Any
      AuthType Basic
      AuthName "oHost repo"
      AuthUserFile /etc/svn-passwd
      AuthzSVNAccessFile /etc/svn-acess
      Require valid-user
  </Location>
  </IfModule>
  </IfModule>
Подробнее о параметрах:
<Location /svn/>  - путь по которому будет открываться наш svn в браузере
SVNParentPath /home/svn/project - папка где располагается наш репозитарий
AuthUserFile /etc/svn-passwd - файл где будут храниться пользователи и пароли
AuthzSVNAccessFile /etc/svn-acess - файл где будут храниться права доступа к пользователям
Не забываем так же создать 2 файла:
touch /etc/svn-passwd
touch /etc/svn-acess
После этого пере перезапускаем apache:
service httpd restart
 
Если возникнут какие-то ошибки при перезапуске - проверяем наш конфиг.
После перезапуска apache по адресу : https://domain/svn/ - у нас появится окно авторизации, далее создадим пользователей и дадим им доступ к нашему репозитарию:
htpasswd -cm /etc/svn-passwd polzovatel
New password:
Re-type new password:
Adding password for user polzovatel
 
В качестве polzovatel - указываем имя Вашего пользователя.
Далее даем нашему созданному пользователю доступ к репозитарию, для этого редактируем файл /etc/svn-acess и помещаем в него строки:
[/]
polzovatel = rw
Т.е. мы дали нашему пользователю - доступ на чтение и запись.
Теперь нам необходимо создать сам репозитарий, для этого делаем следующее:
cd /home/
mkdir svn
cd svn
svnadmin create prodject
chown -R apache.apache project
service httpd restart
 
Далее необходимо создать проект в нашем репозитарии, с файлами проекта мы и будем работать. Если у Вас уже есть папка проекта - то указываем ее, если нет, то можно создать ее в любом удобном месте и использовать. Файлы которые мы создаем далее - можно не создавать, если у Вас уже есть какие-то файлы в папке с проектом. И так:
 
cd /tmp
mkdir testproj
cd testproj
mkdir configurations options main
#файлы ниже можно забить чем угодно или оставить пустыми
nano configurations/testconf1.cfg
nano options/testopts1.cfg
nano main/mainfile1.cfg
# далее подключаем созданную папку к нашему репозитарию, если используете свою - то сразу выполняем эту комманду
svn import /tmp/testproj/ file:///home/svn/project -m "Initial repository layout for test"
Adding /tmp/testproj/main
Adding /tmp/testproj/main/mainfile1.cfg
Adding /tmp/testproj/configurations
Adding /tmp/testproj/configurations/testconf1.cfg
Adding /tmp/testproj/options
Adding /tmp/testproj/options/testopts1.cfg
 Далее проверяем работу нашего репозитария:
cd /tmp
svn co https://domain/svn/
Authentication realm: Subversion repos
Password for 'polzovatel':
A testproj/main
A testproj/main/mainfile1.cfg
A testproj/configurations
A testproj/configurations/testconf1.cfg
A testproj/options
A testproj/options/testopts1.cfg
Checked out revision 1.
Так же при открытии страницы https://domain/svn/ в браузере и вводе имени пользователя и пароля - мы должны увидеть наши созданные папки и файлы. Если Вы назначали на папку со своим проектом - то должны отобразиться файлы проекта.
Если все нормально и никаких ошибок не возникло - на этом установка завершена!
Далее укажем некоторые команды для работы с репозитарием:
Выкатывание с сервера (создание локальной копии): 
svn checkout svn://domain/svn/
Актуализация (обновление локальной копии): 
svn update svn://domain/svn/
Подтверждение изменений (обновление серверной копии): 
svn add program.tgz
svn commit svn://domain/svn/ -m "added new verson of program"
Восстановление после сбоя БД 
svnadmin recover /home/svn/project # непосредственно восстановление
chown -R apache:apache/home/svn/project # восстанавливаем права
Дополнительную информацию Вы можете найти на страницах:

Комментировать

Об этой записи

Сообщение опубликовано 27.03.2010 09:20. Автор — Rezer0.

Предыдущая запись — Работа с Exim

Следующая запись — Репозитарии для CentOS 6

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.