Jak zarządzać repozytoriami SVN przez SSH?

Sposób korzystania z SVN na hostingu zależy jest od tego czy Twój hosting posiada dedykowany adres IP.

Zarządzanie repozytoriami SVN za pomocą SSH umożliwia np. tworzenie nowych repozytoriów, edycje ich ustawień lub korzystanie z innych funkcji SVN za pomocą okna konsoli. Zalecamy korzystanie z Panelu home.pl w celu wykonania najważniejszych operacji związanych z SVN, np. stworzenie nowego repozytorium.

WAŻNE! Kliknij tutaj, aby sprawdzić jak połączyć się z serwerem w home.pl za pomocą SSH.

Połączenie z SVN, gdy hosting posiada dedykowany adres IP

Przy serwerach posiadających unikalny adres IP istnieją dwie metody łączenia się z SVN:

Zarządzanie repozytorium SVN przez narzędzie websvn w Panelu home.pl

Przy hostingu z unikalnym adresem IP podczas łączenia z SVN, można korzystać z linków służących do łączenia się websvn w Panelu home.pl (podczas logowania wpisujesz login i hasło do użytkownika SVN, którego należy utworzyć w Panelu home.pl). Protokół SSH nie musi być wówczas “aktywny”. Nie trzeba również autoryzować się za pomocą kluczy, tak jak ma to miejsce przy hostingach bez dedykowanego adresu IP.

Autoryzacja hasłem podczas łączenia przez SVN+SSH

Jeśli hosting posiada dedykowany adres IP, to podczas łączenia z repozytorium można korzystać z protokółu svn+ssh, gdzie stosowana jest autoryzacja hasłem za pomocą poniższego polecenia:

svh checkout svn+ssh://serwer123456@serwer123456.home.pl/home/serwer123456/svn_repo/nazwa_repozytorium
Gdzie:

  • serwer123456 – to nazwa serwera, na którym znajduje się repozytorium SVN,
  • serwer123456.home.pl – to adres serwera, na którym znajduje się repozytoirum SVN,
  • nazwa_repozytorium – to nazwa repozytorium SVN, do którego chcesz się połączyć.

Użytkownik, za pomocą którego chcemy łączyć się z repozytorium, musi posiadać dostęp do SSH. Repozytoria SVN na serwerze w home.pl domyślnie znajdują się w katalogu “/svn_repo”. Do zarządzania repozytoriami SVN służy komenda svnadmin.

Tworzenie nowego repozytorium SVN przez SSH
svnadmin create ~/svn_repo/[nazwa_repozytorium]

Zalecamy tworzenie repozytoriów SVN poprzez Panel home.pl. W przeciwnym wypadku po utworzeniu repozytorium SVN wymagana będzie edycja plików “authz”, “passwd” oraz “svnserve.conf” (pliki znajdują się w katalogu “~/svn_repo/nazwa_repozytorium/conf/”).

Edycja wymienionych plików polega m.in. na odhaszowaniu linii w pliku konfiguracyjnym, w których znajdują się następujące dyrektywy: “password-db”, “authz-db” oraz “realm”.

Listę przykładowych poleceń, z których możesz skorzystać podczas zarządzania repozytorium SVN przez SSH znajdziesz tutaj.

Połączenie z SVN, gdy hosting nie posiada dedykowanego adresu IP

Niezalecana jest autoryzacja hasłem w celu uzyskania dostępu do repozytoriów, ponieważ nie działają wtedy mechanizmy kontroli dostępu do repozytoriów. W takiej sytuacji sugerujemy korzystanie z autoryzacji kluczami lub zamówienie dedykowanego adresu IP do serwera. Jeśli jednak będziesz chciał skorzystać z autoryzacji hasłem bez unikalnego adresu IP, to więcej informacji znajdziesz tutaj.
Sposób 1: autoryzacja kluczami podczas łączenia się z SVN przez SVN+SSH (zalecane)

Gdy hosting nie posiada unikalnego adresu IP, podczas obsługi SVN przez SSH zalecana jest autoryzacja kluczami, dzięki czemu możemy zastosować mechanizm automatycznego uruchamiania daemona svnserve, blokowania dostępu do shella i określania nazwy użytkownika tunelowanego przez SSH. Więcej informacji o generowaniu kluczy w konsoli.

Poniższy kod wklejamy do pliku znajdującego się w domowym katalogu na serwerze: .ssh/authorized_keys

command="/usr/bin/svnserve --root=/home/SSH_USER/svn_repo --tunnel --tunnel-user=SVN_USER",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty TYPE PUBLIC-KEY COMMENT

Podmieniamy następujące fragmenty właściwymi danymi:

  • SSH_USER – użytkownik, którym logujemy się do SSH, możesz użyć w tym miejscu nazwę konta głównego,
  • SVN_USERużytkownik w SVN, parametr jest używany do zmapowania klucza SSH na użytkownika SVN
  • TYPE – typ klucza, np. ssh-rsa
  • PUBLIC-KEY – klucz publiczny SSH
  • COMMENT – komentarz do klucza

Zawartość pliku klucza publicznego (.pub) powinna wyglądać mniej więcej tak:

command="/usr/bin/svnserve --root=/home/serwer1234567/svn_repo --tunnel --tunnel-user=kowalski",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLfixq9Di38+xAH6Er8/1qcAxbnlUCiyHI3z5zOs6kd234bnBybl/u/SdWILE3D5YG3Pvtt6eGkdDwIQ3zc461OPYv0rAmNCJ84apkoJid5XXXXX kowalski@serwer123456

Po tak przygotowanej konfiguracji, możemy operować na repozytoriach ze skróconą ścieżką – podajemy nazwę repozytorium bezpośrednio po nazwie hosta, w tym celu należy wykonać dwa polecenia:

svn checkout svn+ssh://użytkownik_ssh@serwer123456/nazwa_repozytorium
Sposób 2: autoryzacja hasłem podczas łączenia się z SVN przez SVN+SSH (nie zalecane)

Jeśli hosting nie posiada unikalnego adresu IP, metoda autoryzacji hasłem podczas łączenia się z SVN przez svn+ssh nie jest zablokowana i użytkownik może z niej skorzystać, ale nie jest to zalecany sposób połączenia. W takiej sytuacji sugerujemy zamówić dedykowany adres IP.

Poniżej podajemy polecenie, które służy do łączenia się z repozytorium SVN przez svn+ssh wraz z zastosowaniem autoryzacji hasłem, ale nie jest to zalecana metoda przy hostingu bez dedykowanego adresu IP.

svn checkout svn+ssh://serwer123456@serwer123456.home.pl/home/serwer123456/svn_repo/nazwa_repozytorium
Gdzie:

  • serwer123456 – to nazwa serwera, na którym znajduje się repozytorium SVN,
  • serwer123456.home.pl – to adres serwera, na którym znajduje się repozytoirum SVN,
  • nazwa_repozytorium – to nazwa repozytorium SVN, do którego chcesz się połączyć.

Jeśli skorzystałeś z metody autoryzacji hasłem na hostingu bez dedykowanego adresu IP, to w ustawieniach repozytorium należy dodać poniższy wiersz (jeśli takiego nie ma) do konfiguracji:

$authenticated = rw

Przykładowa lista dostępnych komend podczas obsługi SVN za pośrednictwem SSH:

  • svn up – powoduje aktualizacje Twoich plików do wersji znajdujących się w repozytorium SVN.
  • svn st – wyświetla listę plików, które różnią się zawartością.
  • svn diff – wyświetla różnice w zawartości plików.
  • svn ci – powoduje wysłanie zmienionych przez Ciebie plików do repozytorium SVN.
  • svn add [plik] – powoduje utworzenie nowego pliku.
  • svn del [plik] – powoduje usunięcie wybranego pliku.
WAŻNE! Po użyciu poleceń “svn add” oraz “svn del”, należy następnie skorzystać z polecenia
“svn ci”, aby wykonać tę samą operację w Twoim repozytorium SVN.

Więcej dostępnych komend znajdziesz po wpisaniu w oknie konsoli polecenia “svn help” (język angielski).

Eksport oraz import repozytorium SVN za pomocą SSH

svnadmin dump ~/svn_repo/[nazwa_repozytorium] > [nazwa_zrzutu].dump

Powyższa komenda powoduje eksport wybranego repozytorium SVN do jednego pliku.

svnadmin load ~/svn_repo/[nazwa_repozytorium] < [nazwa_zrzutu].dump

Powyższa komenda powoduje import wybranego zrzutu do wybranego repozytorium SVN, które powinno zostać uprzednio utworzone (najlepiej za pomocą Panelu home.pl). Kliknij tutaj, aby sprawdzić jak utworzyć repozytorium SVN przez Panel home.pl.

Czy mogę skorzystać ze skryptów bash w celu dodania kolejnych funkcjonalności do SVN?

W katalogu “~/svn_repo/[nazwa_repozytorium]/hooks” znajdują się skrypty bash, które mogą dodać nowe funkcjonalności do Twojego repozytorium SVN (np. wysłanie powiadomienia w postaci wiadomości e-mail, po wykonaniu aktualizacji pliku w repozytorium SVN).

Skrypty bash znajdujące się w katalogu “/hooks” domyślnie są wyłączone i posiadają rozszerzenie “.tmpl”.

Jak zarządzać zawartością repozytorium SVN? Poprzedni Jak przejść do ustawień repozytorium SVN? Następny
  • Czy artykuł był pomocny?
  • TAK   Nie
Tematy powiązane
Więcej informacji na forum dyskusyjnym:   Kliknij tutaj, aby przejść na forum.home.pl