Gebruik SVN in de Linux commandline

Dit artikel gaat over het in de Linux commandline gebruiken van het populaire versiebeheersysteem SVN. Zie ook: Installeer een SVN server op Debian en maak een SVN repository aan.

Bestanden importeren met svn import

Om te beginnen maken we een test-bestand aan:

We kunnen nu proberen om dit test-bestand in onze repo te importeren. Hiervoor gebruiken we svn import. Achter "--username" dient u uiteraard uw eigen gebruikersnaam in te vullen. Als u voor de eerste keer svn import gebruikt moet u ook uw wachtwoord opgeven. Ook wordt automatisch uw standaard text editor opgestart zodat u een toelichting kunt geven op de bestanden die zullen worden geïmporteerd.

Een checkout maken met svn checkout

We kunnen nu veilig /root/test.txt verwijderen aangezien hij nu bewaard wordt in de repository: We kunnen nu met behulp van svn checkout de nieuwste versie van onze gehele repo (met nu dus nog één bestand) kopiëren naar een directory naar keuze, wij gaan voor de nieuwe directory /root/checkout. Het bestand test.txt wordt dan in zijn oude vorm teruggehaald, met precies dezelfde inhoud:

Als we nu test.txt bekijken, zien we dat er weer "test" in staat.

Het verschil tussen checkout en repository

Het is nu van belang om het verschil tussen een "checkout" en een "repository" (repo) aan te geven. De repo is waar niet alleen al uw bestanden bewaard worden, maar ook elke individuele versie van deze bestanden. De repo is echter alleen een bewaarplek, als u een bestand wilt openen of aanpassen dient u dit in de checkout-directory te doen (in feite een werkmap, SVN noemt dit ook wel de "working copy"). Deze checkout maken we eenmalig aan met svn checkout. In alle volgende gevallen gebruiken we svn update om onze checkout bij te werken met de bewaarde gegevens uit de repo.

Voorbeelden van svn commit en svn update

Om nu test.txt op de repo bij te werken dienen wij een zogeheten "commit" te doen met svn commit. We gaan eerst in onze checkout test.txt weer wijzigen. Als we vervolgens svn commit aanroepen wordt net zoals bij svn import automatisch een text editor geopend zodat u een toelichting kunt geven voor deze commit. Nu deze commit is gedaan kunnen we met cat in test.txt kijken en zien dat het nog steeds 'De tekst is nu gewijzigd' bevat. Als wij nu svn update uitvoeren blijft dit ook zo, omdat svn update altijd de nieuwste versie (revisie) uit de repo haalt en alle bestanden in de checkout bijwerkt. We kunnen ook met svn update -r een revisie-nummer opgeven en zodoende onze checkout vanuit de repo bijwerken met een oudere versie:

svn add en het verschil tussen svn add en svn import

Aan het begin van dit artikel hadden wij test.txt aan onze repo toegevoegd met svn import. Deze methode is geschikt voor wanneer u nog geen checkout heeft aangemaakt met svn checkout. Vanaf het moment dat u een checkout-directory gebruikt is het verstandiger om svn add te gebruiken, omdat deze rekening houdt met de huidige toestand van de checkout. svn import voegt "blind" bestanden toe aan een checkout (ook als ze zich niet in de checkout-directory bevinden). svn add werkt alleen met nieuwe bestanden die rechtstreeks in de checkout-directory zijn geplaatst, en worden pas toegevoegd nadat svn commit is aangeroepen.

Andere SVN clients met een grafische interface

Voor Windows raden wij Tortoise SVN aan.
Voor Linux (desktop) raden wij RapidSVN aan, deze is vergelijkbaar met Tortoise.