Hoofdstuk 5. Gevorderd gebruik

Bijwerken tot tag, branch of datum

Branches van een module zijn parallelle versies van deze module. Een goed voorbeeld uit het echte leven hiervan is de vrijgave van een softwareproject. Na een hoofdvrijgave zijn er bugs in de code die gerepareerd moeten worden, er zijn echter ook mensen die nieuwe functies aan de toepassing willen toevoegen. Het is erg moeilijk om beiden tegelijk te doen omdat nieuwe functies gewoonlijk ook nieuwe bugs introduceren, waardoor het moeilijk is om de ouden te volgen. Om dit dilemma op te lossen, laat CVS u een parallelle versie aanmaken, die we de stabiele uitgave branch noemen waaraan u alleen bugreparaties kunt toevoegen, waarbij de hoofdbranch (HEAD) open is voor het toevoegen van nieuwe functies.

Tags worden gebruikt om een versie van een project te markeren CVS stempelt één versie van elke bestand met de tag, dus wanneer u een checkout doet of bijwerkt naar een specifieke tag, dan krijgt u altijd dezelfde versies van de bestanden. Daarom zijn, in tegenstelling tot branches, tags niet dynamisch: u kunt niet op een tag ontwikkelen. Tags zijn bruikbaar om uitgaven te markeren, grote wijzigingen in de code, etc..

Wanneer u een softwareproject ontwikkeld of de ontwikkeling volgt, dan werkt u niet noodzakelijk altijd met de hoofdbranch. Na een vrijgave, kunt blijven een poosje bij de vrijgegeven branchwillen blijven, om te genieten van zijn relatieve stabiliteit, bugs repareren, bronnen vertalen, etc. Om dat allemaal te doen, moet u de vrijgegeven branch bijwerken. Al uw bestanden zullen worden bijgewerkt tot de laatste versie van de bestanden in die branch. Na bijwerken zullen alle uw nieuwe commits ook geüpload worden naar de nieuwe branch.

Ook als u een bug wil nagaan die is gerapporteerd tegen een oude vrijgave met een tag, dan biedt CVS u de mogelijkheid om de software op te halen zoals deze was vrijgegeven, door bij te werken naar die tag. Daarnaast kunt u, als u een oude versie van uw project ophalen, dan kunt u uw werkkopie bijwerken naar een specifieke datum. Dit kan nuttig zijn als er een fout is in het project geïntroduceerd tussen twee vrijgaven en u bent van mening over wanneer dat was. Wanneer u bijwerkt naar een datum of tag, dan zullen de versies van uw bestanden hetzelfde zijn als de versies op die specifieke datum of de versies gestempeld door die tag.

Waarschuwing

Alvorens naar een verschillende branch of tag bij te werken, is het belangrijk dat u al uw wijzigingen vastlegt in de branch waarmee u werkt. Als u niet klaar bent om uw wijzigingen vast te leggen, maar u wilt ze niet weggooien, werk dan nieuwe branch niet bij, omdat u uw wijzigingen zou kunnen verliezen. Als alternatief, kunt u een nieuwe checkout doen, om parallel te werken met beide versies.

Afbeelding 5.1. Een schermafdruk van het venster bijwerken naar tag

Een schermafdruk van het venster bijwerken naar tag

Bijwerken naar branch

Selecteer deze optie om een branch bij te werken. Voer de naam van de branch in in het afroltekstvak (of druk op de knop Lijst ophalen om de lijst met branches vanuit de CVS server op te halen en selecteer diegene die u wilt uit de lijst in het afrolvak).

Bijwerken naar tag

Selecteer deze optie om naar een tag bij te werken. Voer de naam van de tag in in het afroltekstvak (of druk op de knop Lijst ophalen om de lijst met tags vanuit de CVS server op te halen en selecteer diegene die u wilt uit de lijst in het afrolvak).

Bijwerken naar datum

Selecteer deze optie om naar een datum bij te werken. In het onderstaande veld, kunt u een brede variëteit van datumformaten invoeren. Een mogelijk formaat is yyyy-mm-dd waar yyyy het jaar is, mm de maand is (numeriek) en dd de dag is. Alternatieven zijn enige Engelse uitdrukkingen zoals yesterday of 2 weeks ago.

Opmerking

Beide opties maken de tag of datum 'sticky', wat wil zeggen dat je geen verdere wijzigingen kunt vastleggen (commit) op die bestanden (tenzij de tag een branch tag is). Om terug te kunnen keren naar de [trunk], ook wel bekend als de branch met de naam HEAD gebruik dan het menu-item GeavanceerdBijwerken naar HEAD.

Het uitgevoerde commando om bij te werken naar een branch of tag is:

cvs update -r tag

Het uitgevoerde commando om bij te werken naar een datum is:

cvs update -D date

Het uitgevoerde commando om bij te werken naar de hoofd branch (HEAD) is:

cvs update -A