Subversion to system śledzenia wersji o otwartym kodzie źródłowym. Przechowuje pliki w centralnym repozytorium i zapewnia kontrolę wersji nad katalogami lub plikami. Jako programista możesz pobierać pliki projektu z repozytorium, wprowadzać w nich zmiany i ponownie je przesyłać.

Subversion posiada również komponent serwera, którego możesz użyć do hostowania swoich projektów. Działa podobnie jak zwykły serwer plików.

Jak zainstalować Subversion?

Instalacja Subversion jest prosta. Aby rozpocząć dystrybucję, możesz użyć odpowiedniego polecenia:

# Debian, Ubuntu
sudo apt zainstalować subversion apache2 libapache2-mod-svn

# CentOS, Fedora, RHEL
sudo dnf zainstalować subversion apache2 mod_dav_svn

Zauważ, że to polecenie również instaluje serwer WWW Apache2. Będziesz potrzebował serwera WWW, jeśli chcesz uzyskać dostęp do repozytorium Subversion przez HTTP lub WebDAV. Możesz także użyć protokołu HTTPS, wystarczy zainstalować i skonfigurować certyfikat cyfrowy, aby to zrobić.

Po uruchomieniu tego polecenia możesz sprawdzić, czy subversion jest poprawnie zainstalowane. Teraz powinieneś być w stanie uruchomić

svn polecenie i możesz zobaczyć aktualną wersję za pomocą --wersja opcja:

Konfiguracja serwera z Subversion

Jeśli instalacja przebiegła bezproblemowo, możesz teraz rozpocząć pracę nad konfiguracją repozytorium, której będziesz używać svn. Oczywiście będziesz musiał stworzyć w tym celu nowe repozytorium. Najpierw utwórz folder w katalogu głównym, aby umieścić swoje repozytorium:

sudo mkdir /subversion

Jeśli chcesz uzyskać dostęp do repozytorium za pomocą WebDAV przez HTTP, musisz przyznać Apacheowi prawo własności do jego katalogu. Ponieważ Apache używa www-dane domyślnie autoryzuj tego użytkownika w następujący sposób:

sudo chown www-data: www-data/subversion

Możesz teraz przełączyć się na www-dane użytkownika i rozpocznij pracę nad swoim repozytorium. Polecenie, którego użyjesz do zalogowania się jako www-dane użytkownik to:

sudo su -s /bin/bash www-data

Jesteś teraz użytkownikiem Apache i po tym kroku możesz stworzyć swoje repozytorium Subversion w następujący sposób:

svnadmin Stwórz /subversion/myrepo

Masz teraz repozytorium Subversion. Aby uczynić to repozytorium nieco bezpieczniejszym i identyfikować jego użytkowników, kolejnym krokiem jest utworzenie użytkownika i ustawienie dla niego hasła. Aby to zrobić, użyj następującego polecenia:

htpasswd -cmb /subversion/passwd mójadmin moje hasło

Zgodnie z tym poleceniem twoja nazwa użytkownika będzie mójadmin a twoje hasło będzie moje hasło. Możesz zmienić te wartości na takie, które są odpowiednie dla twoich okoliczności.

Twoje repozytorium Subversion jest teraz gotowe do użycia. Na tym etapie możesz wyjść z www-dane użytkownik za pomocą Wyjście Komenda.

Teraz możesz wysłać żądany projekt lub plik do swojego repozytorium za pomocą poniższego polecenia:

import sudo svn <Twój-adres-projektu> file:///subversion/myrepo -m "Pierwsze zobowiązanie"

To polecenie używa import parametr, aby przesłać wszystko z folderu projektu do repozytorium Subversion. Robiąc to, musisz dodać komunikat zatwierdzenia z -m parametr.

Korzystanie z metod dostępu w Subversion

Być może zauważyłeś, że używasz plik:// protokół, aby dodać projekt do repozytorium. To tylko jeden z kilku protokołów sieciowych, których możesz użyć, aby uzyskać dostęp do repozytorium svn. Możesz także użyć protokołu WebDAV przez HTTP lub HTTPS lub niestandardowego protokołu subversion svn protokół.

Bezpośredni dostęp do repozytorium

Jak widziałeś, możesz użyć plik:// protokół dostępu do lokalnego repozytorium. Oto jak możesz wyewidencjonować lokalne repozytorium w bieżącym katalogu:

plik svn co:///subversion/myrepo

Kiedy sprawdzasz repozytorium, svn wyświetla listę plików, które zawiera:

Dostęp za pomocą WebDAV

Aby zintegrować swoje repozytorium Subversion z Apache, musisz skonfigurować niektóre ustawienia.

W pierwszym kroku aktywuj dav, dav_svn, oraz dav_fs moduły za pomocą następujących poleceń:

sudo a2enmod dav dav_fs dav_svn

Po aktywacji wymaganych modułów możesz teraz edytować /etc/apache2/mods-enabled/dav_svn.conf plik. Utwórz plik, jeśli jeszcze nie istnieje, i zmień jego zawartość w następujący sposób:

<Lokalizacja / subwersja>
DAV svn
SVNPath /subversion/myrepo
Podstawowy typ uwierzytelniania
Nazwa Uwierzytelniania "Repozytorium Subversion"
AuthUserFile /subversion/passwd
Wymagać prawidłowy-użytkownik
</Location>

The AuthUserFile ustawienie odnosi się do pliku, który utworzyłeś wcześniej za pomocą htpasswd. Dodanie go tutaj zapewni dostęp do repozytorium wszystkim użytkownikom wymienionym w pliku, pod warunkiem, że uwierzytelnią się przy użyciu prawidłowego hasła.

Po utworzeniu i zapisaniu tego pliku uruchom ponownie usługę Apache2 za pomocą następującego polecenia:

sudosystemowyuruchom ponownieApache2.usługa

Teraz, gdy otworzysz przeglądarkę internetową i przejdziesz do http://localhost/subversion/, zobaczysz zawartość swojego repozytorium. Gdy przejdziesz na ten adres, poprosi Cię o nazwę użytkownika i hasło:

Zaloguj się podając nazwę użytkownika (np. mójadmin) i hasło (moje hasło) skonfigurowane wcześniej. Możesz uzyskać dostęp do swojego repozytorium Subversion za pomocą WebDAV po wprowadzeniu nazwy użytkownika i hasła:

Dostęp za pomocą SSL i WebDAV

The https:// protokół ma prawie taką samą konfigurację jak http:// protokół, z kilkoma ważnymi różnicami. Aby podać przykład, .conf plik, którego musisz użyć podczas konfiguracji, jest inny. Musisz także zainstalować certyfikat cyfrowy. Ponieważ, jak wiesz, jest to logika działania Metoda szyfrowania SSL.

Możesz utwórz certyfikat cyfrowy samodzielnie lub możesz zainstalować taki wydany przez właściwy organ. Zakładając, że zainstalowałeś certyfikat cyfrowy, wszystko, co musisz zrobić, jest proste.

Różnica w tym kroku polega na zmianach, które wprowadzisz w pliku konfiguracyjnym. Poniżej znajduje się przykładowy plik konfiguracyjny dla użycia SSL i WebDAV:

<Lokalizacja / subwersja>
DAV wł.
SSLWymagajSSL
Opcje Nic
Podstawowy typ uwierzytelniania
Nazwa Uwierzytelniania "Repozytorium Subversion"
AuthUserFile /subversion/passwd
Wymagać prawidłowy-użytkownik
</Location>

Jak widać, różnica między https:// oraz http:// protokoły to niewiele pod względem zmian w pliku konfiguracyjnym. Po wprowadzeniu tych zmian musisz ponownie uruchomić Apache2 usługa. Biegać systemctl restart apache2.service aby to zrobić.

Dlaczego warto korzystać z Subversion?

Jako narzędzie do śledzenia wersji, Subversion zapamiętuje każdą zmianę dokonaną w plikach i katalogach. Umożliwia dostęp do starych wersji oprogramowania lub dokumentów, z którymi pracujesz, i znajdowanie różnic między nimi. Ułatwia to zarządzanie projektami, zwłaszcza jeśli zespół programistów jest duży lub rozproszony.

Oprócz Subversion istnieje wiele systemów kontroli wersji dla Linuksa, które warto rozważyć.