CentOs: Instalacja SVN

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/

Comments

JacekZ

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.

Reply

Leave a Comment

1 × 5 =