Subversion instellen op Linux

Subversion?

In deze handleiding staat hoe je Subversion in kan stellen op Linux. Lees meer over hoe Subversion werkt op Werken met Subversion bij CodeYard. Om in een Linux-omgeving met Subversion te kunnen werken, zul je moeten zorgen dat je subversion kan gebruiken. Ook voor linux maakt het niet uit welke versie van Subversion je gebruikt; deze handleiding beschrijft twee mogelijkheden:

Volledig in een terminal werken

Als je werkt in een terminal moet je ervoor zorgen dat je de volgende applicaties op je computer zijn geïnstalleerd zijn: 1) subversion, als jouw distributie dat nog niet heeft voor-geïnstalleerd, is het a href="http://subversion.tigris.org/project_packages.html">hier te downloaden. Kijk in de handleiding van je distributie hoe je de package van subversion moet installeren of op de subversion website als je een tarbal wilt gebruiken. 2) OpenSSL. Dat is meestal bij de distro' s geïnstalleerd, mocht dat niet het geval zijn, kun je het alsnog installeren. Kies daarvoor het juiste package van je installatie-CD of -DVD of ga naar de website van jouw distro of naar de homepage van OpenSSL om daar de laatste versie te downloaden.

Werken met een grafische client

Als je met de grafische client eSvn wilt werken moeten er op je computer de volgende applicaties zijn geïnstalleerd: 1) subversion, hier te downloaden, of als package op je CDROM of DVD te vinden. 2) QT, meestal geïnstalleerd als je KDE gebruikt, maar als package op je CDROM of DVD te vinden of als tarbal hier te downloaden of er wordt verwezen naar de diverse distro-sites voor een package. 3) eSvn, hier te downloaden.

Het werken vanuit een terminal

Als je eenmaal subversion hebt geïnstalleerd, kun je daar vanuit een terminal mee werken. Open een terminal. Zorg dat je als een gewone user bent ingelogd, niet als root. Stel je wilt gaan werken met het voorbeeldproject yoyo. Je begint dan met de initial checkout. Hiermee download je alle bestanden uit de CodeYard-repository op je eigen computer, en begint Subversion met bijhouden wat jij allemaal verandert in je eigen kopie. Geef daarvoor het volgende commando:
svn co https://cvs.codeyard.net/svn/yoyo/
Er wordt een directory yoyo aangemaakt waarin de files COPYING.txt en README.txt staan, een een subdirectory www met daarin de files test.html en index.html. Opmerking: Als je al een working copy hebt en je doet een nieuwe checkout dan krijg je de volgende opmerking te zien: svn: 'yoyo' is already a working copy for a different URL. Stel, je verandert de file test.html. Zorg ervoor dat je in de map www in het project yoyo staat. Voer dan een update en daarna een commit uit. Dat ziet er als volgt uit:
svn update test.html
At revision 16.
svn commit test.html
Je komt in een editor. Voeg daarin een tekst toe voor de volgende revisie. Je kan die tekst ook meteen vanaf de command-line meegeven met svn commit test.html -m "beschrijving van wat je hebt gedaan".
Sending        test.html
Transmitting file data .
Committed revision 17.
Je ziet dat het revisienummer is opgehoogd van 16 naar 17. In de logfile kun je nagaan welke revisies er allemaal zijn doorgevoerd aan het project. Je kunt dat bekijken met het commando svn log. Het is ook mogelijk om een checkout te maken van een bepaalde revisie. Dat kan handig zijn als in latere revisies dingen fout zijn gegaan en je hebt de eerdere (werkende) versies niet meer op je PC staan. Je gebruikt dan het commando svn checkout -r x URL, waarbij x het door jou gewenste revisienummer is en de URL de locatie waar je project staat.

Bestanden toevoegen via de command line

Maak in je favoriete editor je bestand(en). Voeg ze eerst toe aan je lokale werkdirectory en daarna aan de repository op de server. Dat gaat als volgt:
papayellow@linux:~/yoyo/www> svn add test2.html
A         test2.html

papayellow@linux:~/yoyo/www> svn update test2.html
At revision 17.

papayellow@linux:~/yoyo/www> svn commit test2.html
Adding         test2.html
Transmitting file data .
Committed revision 18.
papayellow@linux:~/yoyo/www>

Het werken met de grafische cliënt eSvn

Nadat je eSvn hebt geïnstalleerd kun je het openen door in een terminal esvn in te typen. Het kan ook zijn dat je ergens in het startmenu een icoon hebt staan waarmee je eSvn kunt openen. Dat hangt af van welke distributie je gebruikt.
De interface laat een aantal menu's zien, van links naar rechts: File, View, Modify, Query en Help. In het menu View kun je met de optie Toolbars deze balken onder de menubalk plaatsen waardoor alle bruikbare iconen zichtbaar worden die je nodig kunt hebben voor het werken met eSvn. In de menu's op de menubalk kun je ook de sneltoestcombinaties vinden waarmee je het werken met eSvn kunt versnellen.
query menu
menu query met
sneltoetscombinaties
menu modify
menu modify met
sneltoetscombinaties
Een aantal iconen zijn zijn belangrijk om te weten:
icoon betekenis
map, behorende bij repository een map waarin gewijzigde bestanden zitten die horen bij de working copy, maar ze zijn verouderd, een update is noodzakelijk .
map, niet behorende bij de repository een map waarin bestanden zitten die (nog) niet tot de working copy behoren.
file, up to date een bestand dat up to date is in de working copy.
file, lokaal gewijzigd een bestand dat lokaal is gewijzigd in de working copy.
file, toegevoegd aan de working copy een bestand dat aan de working copy is toegevoegd.
bestand, lokaal verwijderd een bestand dat lokaal van de working copy is verwijderd.
bestand in confict een bestand in de working copy waarvoor een conflict is ontstaan met een bestand op de server.
outdated file een bestand in de working copy dat verouderd is, een update is noodzakelijk.
onbekend bestand een onbekend bestand in de working copy.
checkout hiermee voer je een checkout uit van (een deel van) de repository.
update hiermee voer je een update uit.
commit_icoon hiermee voer je een commit uit. Je kunt daar commentaar plaatsen over de veranderingen die je hebt gemaakt.
add hiermee voeg je een bestand toe aan de working copy.

Het werken met eSvn in detail

  1. Zorg ervoor dat je op de harde schijf een map hebt aangemaakt (in dit geval codeyard) waarin je working copy komt te staan.
  2. Open eSvn
  3. Kies voor de optie Checkout in het menu File of klik op het juiste icoon (zie onder). Er verschijnt een venster waarin je allerlei gegevens dient in te vullen en klik vervolgens op OK. Zie hieronder:

  4. De checkout wordt uitgevoerd. Je kunt dat volgen op het scherm. Voor het project yoyo op de server betekent dat er een map www wordt aangemaakt met een drietal files erin en daarnaast in de root nog twee files. In de message onder de bestandsindeling staat wat er precies is gebeurd.

  5. Je kunt nu allerlei gegevens over de bestanden in je working copy bekijken. Aan de vorm en kleur van de iconen kun je de status aflezen van de bestanden en mappen.
  6. Je kunt nu aan de slag. Je gaat bestanden wijzigen en/of toevoegen en/of verwijderen. (editfase) Stel je bewerkt het bestand test2.html in Kwrite. Als je de wijzigingen hebt opgeslagen en teruggaat naar eSvn dan zie je het volgende:

    changed file

    Het icoon van het bestand test2.html is veranderd en bovendien is er een onbekend bestand bijgekomen. Dit is een backupbestand van test2.html. Dat wordt door Kwrite in de map geplaatst.
  7. Na de wijzigingen voer je een Update uit.

    update

  8. Na de update volgt een Commit. Je geeft daarin aan wat je allemaal hebt veranderd aan de bestanden. Dat is van belang als meerdere personen aan een project werken. Je kunt altijd terugzien wie wat wanneer heeft uitgevoerd aan het project. Na een Commit wordt automatisch het revisienummer met 1 opgehoogd. Bij de Checkout van dit project stond het aantal revisies op 18. Nu is het 19 geworden.

    commit

  9. Als je een bestand wilt toevoegen gaat dat als volgt:
    • Maak een bestand aan en sla dat op in de working copy
    • Je ziet dat dat bestand als status heeft: unknown
    • Selecteer dat bestand en klik op de rechtermuisknop. Kies de optie Add. Je ziet nu dat de file test3.html aan de working copy is toegevoegd.

      bestand toevoegen

      in het messageboard eronderd kun je dat ook zien.

      bestand toevoegen - bericht

    • Nu kun je op de vertrouwde manier een Update en een Commit uitvoeren. uiteindelijk zijn de bestanden in je working copy als op de server up to date. Je ziet ook dat het revisienummer met 1 is opgehoogd tot 20. Verder kun je zien dat er nu files instaan met verschillend revisienummer. Dat komt omdat je per file een update hebt gemaakt. Alleen de gewijzigde files krijgen dan een revisienummeraanpassing.

      update

      bericht na commit

    • Voor gedetailleerdere uitleg kun je terecht in de handleiding die je kunt vinden in het menu Help van eSvn.