CentOs: Instalacja SVN

Autor: Arkadiusz Tobiasz 5 września 2011

W tym wpisie postaram się pokazać jak zainstalować SVN na serwerze z zainstalowanym systemem CentOs. SVN to system kontroli wersji, który w znacznym stopniu ułatwia pracę nad projektami w grupie projektowej.

Na wstępie musimy zainstalować wymagane paczki:

1
yum install mod_dav_svn subversion

SVN do działania wymaga zainstalowanego na serwerze Apache’a. Jeżeli go jeszcze nie masz, to tutaj możesz dowiedzieć się jak go zainstalować.

Mając już wszystkie potrzebne rzeczy przystępujemy do skonfigurowania SVN’a:

1
vi /etc/httpd/conf.d/subversion.conf

W pliku tym umieszczamy poniższą treść:

1
2
3
4
5
6
7
8
9
10
11
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
 
<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn
   AuthType Basic
   AuthName "Subversion repositories"
   AuthUserFile /etc/svn-auth-users
   Require valid-user
</Location>

Przy restarcie Apache’a będą dzięki temu ładowane potrzebne moduły, aby SVN działał dobrze. Po ścieżką /var/www/svn będą znajdować się nasze repozytoria, a w pliku /etc/svn-auth-users dane użytkowników, którzy będą mieli dostęp do SVN’a.

Czas na stworzenie użytkownika, który będzie miał dostęp do naszego repozytorium. Stworzymy użytkownika o loginie test.

1
2
3
4
htpasswd -cm /etc/svn-auth-users test
New password:
Re-type new password:
Adding password for user test

Pozostało nam tylko stworzenie pierwszego repozytorium SVN.

1
2
mkdir /var/www/svn
cd /var/www/svn

Stworzyliśmy katalog, w którym będziemy przechowywać pliki wszystkich stworzonych repozytoriów. Teraz stworzymy repozytorium projekt.

1
svnadmin create projekt

Zmieniamy właściciela z root’a na apache’a:

1
chown -R apache.apache projekt

Odblokowujemy wysyłanie zmian do repozytorium

1
2
chcon -R -t httpd_sys_content_t /var/www/svn/projekt
chcon -R -t httpd_sys_rw_content_t /var/www/svn/projekt

Restartujemy Apache’a:

1
service httpd restart

Teraz udajemy się pod adres http://adres-ip-serwera/svn/projekt i wpisujemy dane do logowania użytkownika, którego stworzyliśmy. Naszym oczom powinien się ukazać ekran z informacją „projekt – Revision 0: /”.

Skonfigurujmy jeszcze repozytorium tak, aby zablokować dostęp niezalogowanym użytkownikom oraz dajmy pełen dostęp użytkownikom autoryzowanym.

1
vi projekt/conf/svnserve.conf

Dodajemy następujące linijki:

1
2
anon-access = none
authz-db = authz

Pozostaje jeszcze stworzenie struktury repozytorium, gdzie w głównym katalogu znajdą się 3 foldery: trunk, tags i branches. Trunk to główna gałęź rozwijanego projektu, a branches to gałęzie projektu, w której rozwijane są jakieś nowe funkcjonalności. Tags to kopia wersji projektu, która powinna być stabilna.

Najpierw tworzymy „wzór” struktury katalogów:

1
mkdir -p /tmp/svn-structure-template/{trunk,branches,tags}

Stworzony wzór importujemy do naszego repozytorium.

1
svn import -m 'Initial import' /tmp/svn-structure-template/ http://adres-ip-serwera/svn/projekt/

Jeden komentarz

  1. JacekZ napisał(a):

    Witam,
    bardzo fajny i pomocny artykuł. Mam jednak pytanie, czy uprawnienia do repozytoriów muszę ustawiać per każdy projekt osobno, czy mogę dać dla konkretnego użytkownika „globalne uprawnienia do wszystkich repozytoriów istniejących teraz i przyszłych.

Odpowiedz

 

Arkadiusz Tobiasz student Akademii Ekonomicznej im. Karola Adamieckiego w Katowicach na specjalnościach informatyka ekonomiczna oraz rachunkowość. Więcej...

jQuery Validation i funkcja remote

Jakiś czas temu zwrócił się do mnie użytkownik z problemem. Chodzi o to, że korzysta on z pluginu walidacji jQuery, […]

Zend Framework: integracja z Uploadify

W tym wpisie postaram się przedstawić Wam w jaki sposób zintegrować skrypt Uploadify z Zend Frameworkiem. Dzięki temu będziemy mogli […]

Javascript: Czasowe wyświetlanie reklamy

Czasami chcemy, aby na pewnym elemencie naszej strony wyświetlała się reklama przez jakiś czas, a następnie zniknęła. W tym wpisie […]

Linux: backup wszystkich baz danych MySQL

Swego czasu pisałem o tym jak z poziomu konsoli można szybko i przyjemnie zrobić backup bazy MySQL. Wszystko jest ładnie […]