Subversion is een open-source versievolgsysteem. Het houdt bestanden in een centrale repository en biedt versiebeheer over mappen of bestanden. Als ontwikkelaar kun je projectbestanden uit een repository halen, er wijzigingen in aanbrengen en ze weer terugduwen.
Subversion heeft ook een servercomponent die u kunt gebruiken om uw projecten te hosten. Het werkt net als een gewone bestandsserver.
Hoe Subversion te installeren
Subversion is eenvoudig te installeren. U kunt de juiste opdracht voor uw distro gebruiken om te beginnen:
# Debian, Ubuntu
sudo apt installeren subversie apache2 libapache2-mod-svn
# CentOS, Fedora, RHEL
sudo dnf installeren subversie apache2 mod_dav_svn
Merk op dat dit commando ook installeert de Apache2-webserver. Je hebt een webserver nodig als je via HTTP of WebDAV toegang wilt krijgen tot de Subversion-repository. U kunt ook HTTPS gebruiken, u hoeft hiervoor alleen een digitaal certificaat te installeren en configureren.
Als je deze opdracht eenmaal hebt uitgevoerd, kun je controleren of de subversie correct is geïnstalleerd. U zou nu in staat moeten zijn om de
svn commando en je kunt de huidige versie zien met de --versie keuze:Serverconfiguratie met Subversion
Als de installatie soepel is verlopen, kun je nu beginnen met het werken aan de repositoryconfiguratie waarmee je gaat werken svn. Hiervoor moet je natuurlijk wel een nieuwe repository aanmaken. Maak eerst een map in een hoofdmap om uw repository te plaatsen:
sudo mkdir /subversion
Als u toegang wilt krijgen tot uw repository met WebDAV via HTTP, moet u Apache het eigendom van de directory geven. Sinds Apache gebruikt www-gegevens gebruiker standaard, autoriseert u deze gebruiker als volgt:
sudo chown www-data: www-data /subversion
U kunt nu overschakelen naar de www-gegevens gebruiker en begin aan uw repository te werken. Het commando dat u zou gebruiken om in te loggen als de www-gegevens gebruiker is:
sudo su -s /bin/bash www-data
U bent nu een Apache-gebruiker en na deze stap kunt u als volgt uw Subversion-repository maken:
svnaadmin creëren /subversion/myrepo
Je hebt nu een Subversion-repository. Om deze repository een beetje veiliger te maken en de gebruikers te identificeren, is de volgende stap om een gebruiker aan te maken en er een wachtwoord voor in te stellen. Gebruik hiervoor de volgende opdracht:
htpasswd -cmb /subversion/passwd mijnadmin mijnpass
Volgens deze opdracht wordt uw gebruikersnaam mijn beheerder en uw wachtwoord zal zijn mypass. U kunt deze waarden wijzigen in wat geschikt is voor uw omstandigheden.
Je Subversion-repository is nu klaar voor gebruik. In dit stadium kunt u de www-gegevens gebruiker met behulp van de Uitgang opdracht.
Nu kunt u een gewenst project of bestand naar uw repo sturen met behulp van de onderstaande opdracht:
sudo svn importeren <uw-project-adres> file:///subversion/myrepo -m "Eerste vastlegging"
Dit commando gebruikt de importeren parameter om alles in je projectmap naar je Subversion-repository te pushen. Terwijl je dit doet, moet je het commit-bericht toevoegen met de -m parameter.
Toegangsmethoden gebruiken in Subversion
Het is je misschien opgevallen dat je de het dossier:// protocol om een project aan uw repository toe te voegen. Dit is slechts een van de vele netwerkprotocollen die u kunt gebruiken om toegang te krijgen tot een svn-repository. U kunt ook het WebDAV-protocol gebruiken via HTTP of HTTPS, of de aangepaste subversie svn protocol.
Directe toegang tot de repository
Zoals je hebt gezien, kun je de het dossier:// protocol om toegang te krijgen tot een lokale repository. Hier leest u hoe u een lokale repo kunt uitchecken in uw huidige map:
svn co-bestand:///subversion/myrepo
Wanneer u de repo uitcheckt, geeft svn een lijst weer met de bestanden die het bevat:
Toegang krijgen via WebDAV
Om je Subversion-repository met Apache te integreren, moet je enkele instellingen configureren.
Activeer voor de eerste stap de dav, dav_svn, en dav_fs modules met behulp van de volgende opdrachten:
sudo a2enmod dav dav_fs dav_svn
Na het activeren van de vereiste modules, kunt u nu de /etc/apache2/mods-enabled/dav_svn.conf het dossier. Maak het bestand aan als het nog niet bestaat en wijzig de inhoud als volgt:
<Locatie / subversie>
DAV svn
SVNPath /subversion/myrepo
AuthType Basis
AuthNaam "Subversion-opslagplaats"
AuthUserFile /subversion/passwd
Vereisen geldige-gebruiker
</Location>
De AuthUserFile instelling verwijst naar het bestand dat u eerder hebt gemaakt met htpasswd. Als u het hier toevoegt, krijgt u toegang tot de repository aan alle gebruikers die in het bestand worden genoemd, op voorwaarde dat ze zich verifiëren met een geldig wachtwoord.
Nadat u dit bestand hebt gemaakt en opgeslagen, start u de Apache2-service opnieuw met de volgende opdracht:
sudosystemctlherstartenapache2.onderhoud
Wanneer u nu een webbrowser opent en naar. gaat http://localhost/subversion/, ziet u de inhoud van uw repository. Wanneer u naar dit adres gaat, wordt om uw gebruikersnaam en wachtwoord gevraagd:
Log in met de gebruikersnaam (bijv. mijn beheerder) en wachtwoord (mypass) die u eerder hebt ingesteld. Je hebt toegang tot je Subversion-repository met WebDAV nadat je de gebruikersnaam en het wachtwoord hebt ingevoerd:
Toegang met SSL en WebDAV
De https:// protocol heeft bijna dezelfde configuratie als de http:// protocol, met slechts een paar belangrijke verschillen. Om een voorbeeld te geven, de .conf bestand dat u tijdens de configuratie moet gebruiken, is anders. U moet ook een digitaal certificaat installeren. Want zoals je weet, is dit de werkende logica van de SSL-coderingsmethode.
Jij kan een digitaal certificaat maken zelf, of u kunt er een installeren die is uitgegeven door een bevoegde autoriteit. Ervan uitgaande dat u een digitaal certificaat hebt geïnstalleerd, is wat u hoeft te doen eenvoudig.
Het verschil in deze stap zijn de wijzigingen die u aanbrengt in het configuratiebestand. Hieronder vindt u een voorbeeldconfiguratiebestand voor SSL- en WebDAV-gebruik:
<Locatie / subversie>
DAV Aan
SSLVereistSSL
Opties Geen
AuthType Basis
AuthNaam "Subversion-opslagplaats"
AuthUserFile /subversion/passwd
Vereisen geldige-gebruiker
</Location>
Zoals u kunt zien, is het verschil tussen: https:// en http:// protocollen is niet zo veel in termen van wijzigingen in het configuratiebestand. Na deze wijzigingen moet u de. opnieuw opstarten apache2 onderhoud. Rennen systemctl herstart apache2.service om dat te doen.
Waarom Subversion gebruiken?
Als versietracker onthoudt Subversion elke wijziging in bestanden en mappen. Hiermee hebt u toegang tot oude versies van software of documenten waarmee u werkt en kunt u de verschillen vinden. Dit maakt het gemakkelijker om projecten te beheren, vooral als uw ontwikkelteam groot of verspreid is.
Er zijn veel versiebeheersystemen voor Linux, afgezien van Subversion, die je misschien wilt overwegen.