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:
- UŻYTKOWNIK: nazwa użytkownika (tak jak login do konta SSH)
- KATALOG: katalog dla repozytorium umieszczony na koncie użytkownika
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:
- [/]: katalog repozytorium, w tym przypadku katalog nadrzędny, czyli całe repozytorium
- admin = rw: prawa odczytu ® i zapisu (w) dla użytkownika „admin”
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:
- użytkownik: nazwa użytkownika systemowego (login SSH)
- katalog_svn: nazwa katalogu zawierającego repozytoria (np. „svn”)
- 3691: numer portu, na którym nasłuchiwać będzie serwer - jeśli wybrany port jest już zajęty, należy go zwiększyć
Na koniec można sprawdzić działanie repozytorium za pomocą dowolnego klienta SVN, podając jako adres docelowy:
svn://domena.pl:3691/repozytorium
gdzie:
- domena.pl: dowolna domena przypisana konta w jego panelu
- repozytorium: nazwa istniejącego repozytorium, np. „projekt1”
Analogicznie do przedstawionego przykładu:
svn://uzytkownik1.unixstorm.org:3691/projekt1