Subversion е система за проследяване на версии с отворен код. Той съхранява файлове в централно хранилище и осигурява контрол на версиите върху директории или файлове. Като разработчик можете да изтегляте файлове на проекта от хранилище, да правите промени в тях и да ги връщате обратно.
Subversion също има сървърен компонент, който можете да използвате за хостване на вашите проекти. Работи много като обикновен файлов сървър.
Как да инсталирате Subversion
Subversion се инсталира лесно. Можете да използвате подходящата команда за вашата дистрибуция, за да започне:
# Debian, Ubuntu
sudo apt Инсталирай подривна дейност apache2 libapache2-мод-svn
# CentOS, Fedora, RHEL
sudo dnf Инсталирай subversion apache2 mod_dav_svn
Имайте предвид, че тази команда също инсталира уеб сървъра Apache2. Ще ви е необходим уеб сървър, ако искате да получите достъп до хранилището на Subversion чрез HTTP или WebDAV. Можете също да използвате HTTPS, просто ще трябва да инсталирате и конфигурирате цифров сертификат, за да го направите.
След като изпълните тази команда, можете да проверите дали subversion е инсталиран правилно. Вече трябва да можете да стартирате svn и можете да видите текущата версия с помощта на --версия опция:
Конфигуриране на сървър със Subversion
Ако инсталацията е преминала гладко, сега можете да започнете да работите върху конфигурацията на хранилището, с което ще използвате svn. Разбира се, ще трябва да създадете ново хранилище за това. Първо създайте папка в главна директория, за да поставите вашето хранилище:
sudo mkdir /subversion
Ако трябва да получите достъп до вашето хранилище чрез WebDAV през HTTP, ще трябва да предоставите на Apache собственост върху неговата директория. Тъй като Apache използва www-данни потребител по подразбиране, упълномощете този потребител, както следва:
sudo chown www-данни: www-данни /subversion
Вече можете да превключите към www-данни потребител и започнете да работите върху вашето хранилище. Командата, която ще използвате, за да влезете като www-данни потребителят е:
sudo su -s /bin/bash www-данни
Вече сте потребител на Apache и след тази стъпка можете да създадете вашето Subversion хранилище, както следва:
svnadmin създавам /subversion/myrepo
Вече имате хранилище на Subversion. За да направите това хранилище малко по-сигурно и да идентифицирате неговите потребители, следващата стъпка е да създадете потребител и да зададете парола за него. За да направите това, използвайте следната команда:
htpasswd -cmb /subversion/passwd myadmin mypass
Според тази команда вашето потребителско име ще бъде myadmin и вашата парола ще бъде mypass. Можете да промените тези стойности на това, което е подходящо за вашите обстоятелства.
Вашето хранилище на Subversion вече е готово за използване. На този етап можете да излезете от www-данни потребител чрез използване на изход команда.
Сега можете да изпратите желания проект или файл във вашето репо, като използвате командата по-долу:
sudo svn импортиране <вашият адрес на проекта> file:///subversion/myrepo -m "Първи ангажимент"
Тази команда използва импортиране параметър, за да преместите всичко във вашата папка на проекта във вашето хранилище на Subversion. Докато правите това, трябва да добавите съобщението за ангажиране с -м параметър.
Използване на методи за достъп в Subversion
Може би сте забелязали, че използвате файл:// протокол за добавяне на проект към вашето хранилище. Това е само един от няколкото мрежови протокола, които можете да използвате за достъп до svn хранилище. Можете също така да използвате протокола WebDAV през HTTP или HTTPS или персонализиран на subversion svn протокол.
Директен достъп до хранилището
Както видяхте, можете да използвате файл:// протокол за достъп до локално хранилище. Ето как можете да проверите локално репо във вашата текуща директория:
svn co файл:///subversion/myrepo
Когато проверите репото, svn показва списък с файловете, които съдържа:
Достъп чрез WebDAV
За да интегрирате вашето Subversion хранилище с Apache, ще трябва да конфигурирате някои настройки.
За първата стъпка активирайте дав, dav_svn, и dav_fs модули с помощта на следните команди:
sudo a2enmod dav dav_fs dav_svn
След като активирате необходимите модули, вече можете да редактирате /etc/apache2/mods-enabled/dav_svn.conf файл. Създайте файла, ако все още не съществува, и променете съдържанието му, както следва:
<Местоположение/подривна дейност>
DAV svn
SVNPath /subversion/myrepo
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Изискване валиден-потребител
</Location>
The AuthUserFile настройката препраща към файла, който сте създали по-рано с помощта на htpasswd. Добавянето му тук ще предостави достъп до хранилището на всички потребители, посочени във файла, при условие че се удостоверят с валидна парола.
След като създадете и запазите този файл, рестартирайте услугата Apache2 със следната команда:
sudosystemctlрестартирамapache2.обслужване
Сега, когато отворите уеб браузър и отидете на http://localhost/subversion/, ще видите съдържанието на вашето хранилище. Когато отидете на този адрес, той ще ви поиска потребителско име и парола:
Влезте с потребителското име (напр. myadmin) и парола (mypass), които сте настроили по-рано. Можете да получите достъп до своето хранилище на Subversion с помощта на WebDAV, след като въведете потребителското име и паролата:
Достъп със SSL и WebDAV
The https:// протоколът има почти същата конфигурация като http:// протокол, само с няколко важни разлики. За да дадем пример, .conf файлът, който трябва да използвате по време на конфигурацията, е различен. Трябва също така да инсталирате цифров сертификат. Защото, както знаете, това е логиката на работа на Метод на SSL криптиране.
Можеш създаване на цифров сертификат сами или можете да инсталирате такъв, издаден от компетентен орган. Ако приемем, че сте инсталирали цифров сертификат, това, което трябва да направите, е просто.
Разликата в тази стъпка са промените, които ще направите в конфигурационния файл. По-долу е примерен конфигурационен файл за използване на SSL и WebDAV:
<Местоположение/подривна дейност>
DAV включен
SSLRequireSSL
Настроики Нито един
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Изискване валиден-потребител
</Location>
Както можете да видите, разликата между https:// и http:// протоколи не е толкова много по отношение на промените в конфигурационния файл. След тези промени ще трябва да рестартирате apache2 обслужване. Бягай systemctl рестартирайте apache2.service да го направя.
Защо да използвате Subversion?
Като инструмент за проследяване на версии, Subversion запомня всяка промяна, направена във файлове и директории. Тя ви позволява да получите достъп до стари версии на софтуер или документи, с които работите, и да намерите разликите им. Това улеснява управлението на проекти, особено ако вашият екип за разработка е голям или разпределен.
Има много системи за контрол на версиите за Linux освен Subversion, които може да искате да разгледате.