Ga voor een Proefrit

Deze sectie laten we je zien hoe je een paar van de meest gebruikte functies kunt proberen op een kleine test repository. Natuurlijk verklaart het niet alles - dit is immers slechts de snelstart gids. Als je alles geconfigureerd hebt moet je de tijd nemen om de rest van deze handleiding door te lezen. Daarin wordt ook uitgelegd hoe je een echte Subversion server installeert.

Aanmaken van een archief

Voor een echt project zul je een repository op een veilige plaats opzetten en een Subversion server om het te controleren. In deze tutorial gebruiken we Subversion's lokale repository mogelijkheid welke directe toegang tot een repository op je hard disk mogelijk maakt, zonder een aparte server.

First create a new empty directory on your PC. It can go anywhere, but in this tutorial we are going to call it C:\svn_repos. Now right click on the new folder and from the context menu choose TortoiseSVNCreate Repository here.... The repository is then created inside the folder, ready for you to use. We will also create the default internal folder structure by clicking the Create folder structure button.

Belangrijk

De lokale repository mogelijkheid is erg handig voor test en evaluatie maar tenzij je als enige ontwikkelaar op een enkele computer werkt kun je beter een echte subversion server gebruiken. Het is verleidelijk om in een klein bedrijf het extra werk om een server te installeren te vermeiden en de repository op een via het netwerk gedeelde map te benaderen. Doe dat nooit. Je zult data verliezen. Lees de paragraaf met de naam “Een archief benaderen op een Netwerk schijf” om te weten waarom dit een slecht idee is en hoe je een server moet installeren.

Een Project importeren

Now we have a repository, but it is completely empty at the moment. Let's assume I have a set of files in C:\Projects\Widget1 that I would like to add. Navigate to the Widget1 folder in Explorer and right click on it. Now select TortoiseSVNImport... which brings up a dialog

Afbeelding 1.2. Het invoer venster

Het invoer venster


A Subversion repository is referred to by URL, which allows us to specify a repository anywhere on the Internet. In this case we need to point to our own local repository which has a URL of file:///c:/svn_repos/trunk, and to which we add our own project name Widget1. Note that there are 3 slashes after file: and that forward slashes are used throughout.

Een andere belangrijke functie van dit dialoogvenster is de Import Message box. Hierin kun je beschrijven wat je veranderd hebt. Als je later in de project geschiedenis zoekt, zijn deze berichten een waardevolle leidraad voor welke wijzigingen zijn aangebracht en waarom. In dit geval kun je bijvoorbeeld iets simpels als Importeer het widget1 project invullen . Klik op OK en de map wordt toegevoegd aan uw repository.

Een lokale werkkopie (WC) ophalen

Now that we have a project in our repository, we need to create a working copy to use for day-to-day work. Note that the act of importing a folder does not automatically turn that folder into a working copy. The Subversion term for creating a fresh working copy is Checkout. We are going to checkout the Widget1 folder of our repository into a development folder on the PC called C:\Projects\Widget1-Dev. Create that folder, then right click on it and select TortoiseSVNCheckout.... Then enter the URL to checkout, in this case file:///c:/svn_repos/trunk/Widget1 and click on OK. Our development folder is then populated with files from the repository.

Belangrijk

In the default setting, the checkout menu item is not located in the TortoiseSVN submenu but is shown at the top explorer menu. TortoiseSVN commands that are not in the submenu have SVN prepended: SVN Checkout...

U zal merken dat het uitzicht van deze bestandsmap verschilt van de oorspronkelijke map. Elk bestand heeft een groen vinkje in de hoek linksonder. Deze TortoiseSVN-statusicoontjes zijn enkel zichtbaar in een map die onder versiecontrole geplaatst is. Het groene statussymbool betekent dat het bestand in de map onveranderd is van de versie in het SVN-repository.

Wijzigingen Doorvoeren

Time to get to work. In the Widget1-Dev folder we start editing files - let's say we make changes to Widget1.c and ReadMe.txt. Notice that the icon overlays on these files have now changed to red, indicating that changes have been made locally.

Maar wat zijn nu de veranderingen? Rechts-klik op een van de veranderde bestanden en selecteer TortoiseSVNDiff. Het vergelijkprogramma van TortoiseSVN wordt gestart en laat precies zien welke regels veranderd zijn.

Afbeelding 1.3. Bestandsverschillen Overzicht

Bestandsverschillen Overzicht


OK, so we are happy with the changes, let's update the repository. This action is referred to as a Commit of the changes. Right click on the Widget1-Dev folder and select TortoiseSVNCommit. The commit dialog lists the changed files, each with a checkbox. You might want to choose only a subset of those files, but in this case we are going to commit the changes to both files. Enter up a message to describe what the change is all about and click on OK. The progress dialog shows the files being uploaded to the repository and you're done.

Meer Bestanden Toevoegen

As the project develops you will need to add new files - let's say you add some new features in Extras.c and add a reference in the existing Makefile. Right click on the folder and TortoiseSVNAdd. The Add dialog now shows you all unversioned files and you can select which ones you want to add. Another way of adding files would be to right click on the file itself and select TortoiseSVNAdd.

Wanneer je vervolgens de folder wilt vastleggen wordt het nieuwe bestand getoond als Toegevoegd en het bestaande bestand als Aangepast. Bemerk dat je door te dubbelklikken op het aangepaste bestand de exacte wijzigingen aan dat bestand kan zien.

De project geschiedenis bekijken

One of the most useful features of TortoiseSVN is the Log dialog. This shows you a list of all the commits you made to a file or folder, and shows those detailed commit messages that you entered (you did enter a commit message as suggested? If not, now you see why this is important).

Afbeelding 1.4. Het logboekscherm

Het logboekscherm


OK, so I cheated a little here and used a screenshot from the TortoiseSVN repository.

The top pane shows a list of revisions committed along with the start of the commit message. If you select one of these revisions, the middle pane will show the full log message for that revision and the bottom pane will show a list of changed files and folders.

Each of these panes has a context menu which provides you with lots more ways of using the information. In the bottom pane you can double click on a file to see exactly what changes were made in that revision. Read de paragraaf met de naam “Logboekboodschappen Venster” to get the full story.

Wijzigingen ongedaan maken

Een feature van alle versiebeheersystemen is dat ze je toestaan om wijzigingen, die je eerder hebt gemaakt, ongedaan te maken. Zoals je wellicht al verwacht, maakt TortoiseSVN dit erg gemakkelijk voor je om te doen.

If you want to get rid of changes that you have not yet committed and reset your file to the way it was before you started editing, TortoiseSVNRevert is your friend. This discards your changes (to the Recycle bin, just in case) and reverts to the committed version you started with. If you want to get rid of just some of the changes, you can use TortoiseMerge to view the differences and selectively revert changed lines.

If you want to undo the effects of a particular revision, start with the Log dialog and find the offending revision. Select Context MenuRevert changes from this revision and those changes will be undone.