Jak utworzyć repozytorium SVN?

Aby utworzyć nowe, własne repozytorium SVN, należy zalogować się do konta przez SSH i uruchomić polecenie:

svnadmin create /home/UŻYTKOWNIK/KATALOG

gdzie:

Przykładowo:

mkdir ~/svn
svnadmin create /home/uzytkownik1/svn/projekt1

W efekcie system automatycznie utworzy repozytorium we wskazanym katalogu wraz z całą jego konfiguracją. Przed umieszczeniem plików w repozytorium zalecane jest zamknięcie go tylko do wybranych i autoryzowanych użytkowników. Można to zrobić np. dodając odpowiedniego użytkownika z hasłem oraz wyłączając dostęp anonimowy.

Na końcu pliku ~/svn/projekt1/conf/passwd należy dopisać:

admin = haslo123

Następnie w pliku ~/svn/projekt1/conf/svnserve.conf należy zmienić linie:

# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
# realm = My First Repository

na:

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = Nazwa repezytorium

oraz do pliku ~/svn/projekt1/conf/authz, na samym końcu dopisać:

[/]
admin = rw

W rezultacie utworzone repozytorium będzie dostępne tylko dla autoryzowanych użytkowników (plik passwd) i ze zdefiniowanymi uprawnieniami (plik authz).

Składnia dla uprawnień użytkowników w pliku authz oznacza:

Kiedy wszystkie repozytoria zostaną utworzone, należy wybrać metodę dostępu do nich. Dostępne metody to natywny protokół SVN (svn:) oraz SSH (svn+ssh:).

W przypadku dostępu przez SSH, dostęp jest realizowany zgodnie z danymi dostępowymi konta systemowego (SSH) i ignorowane są konfiguracje użytkowników w repozytorium. Połączenie tą metodą odbywa się po adresie:

svn+ssh://domena.pl/home/użytkownik/repozytorium

Aby korzystać z pełnej konfiguracji posiadanego repozytorium, należy uruchomić na własnym koncie osobnego daemona SVN, który będzie nasłuchiwał na wybranym i wolnym porcie. Można to zrobić poleceniem:

svnserve -r /home/użytkownik/katalog_svn --listen-port 3691 -d

gdzie:

Na koniec można sprawdzić działanie repozytorium za pomocą dowolnego klienta SVN, podając jako adres docelowy:

svn://domena.pl:3691/repozytorium

gdzie:

Analogicznie do przedstawionego przykładu:

svn://uzytkownik1.unixstorm.org:3691/projekt1