Bestanden vastleggen (commit)

Wanneer u een bepaalde hoeveelheid veranderingen in de werkkopie hebt gemaakt en u wil de andere ontwikkelaars hier deelgenoot van maken dan zul u ze moeten vastleggen. De engelstalige term hiervoor is commit. Door het vastleggen wordt uw versies als nieuwe revisies aan de repository toegevoegd. Een ontwikkelaar die vervolgens een update uitvoert zal daarin uw aanpassingen terugvinden.

Om een aantal bestanden tegelijk vast te leggen, selecteert u ze in Cervisia en kiest u voor BestandVastleggen (commit)... of u klikt rechts op de gemarkeerde bestanden en kiest in het contextmenu Vastleggen (commit)....

Afbeelding 3.2. Een schermafdruk van het dialoogvenster "CVS commit" van Cervisia

Een schermafdruk van het dialoogvenster "CVS commit" van Cervisia

U krijgt een dialoog die u een lijst met de geselecteerde bestanden boven aan de sectie laat zien en een logbericht voor uw onderstaande wijzigingen. Cervisia helpt u op een aantal manieren om een betekenisvol logbericht te vinden: allereerst in de lijst van bestanden kunt u dubbelklikken op een bestand of de toets Return drukken om de gemaakte veranderingen aan het bestand te zien. Ten tweede geeft het een lijst van logberichten die je eerder hebt gebruikt in een comboveld. Ten derde is dit venster geïntegreerd met de changelog-editor van Cervisia zoals hieronder beschreven. Als u de dialoog hebt beëindigd, zal het commando

cvs commit -m bericht besandsnamen

worden gebruikt.

Opmerking

Een veelvoorkomende fout die u tegen kunt komen wanneer u bestanden vastlegt is Up-to-date check failed. Dit geeft aan dat iemand veranderingen in de repository heeft gemaakt sinds de laatste keer dat de lokale repository is bijgewerkt. Of technisch gesproken: dat de BASE-revisie niet de nieuwste binnen zijn branch is. In zo'n geval weigert CVS om uw aanpassingen toe te voegen aan de repository. De oplossing is om de lokale repository bij te werken, conflicten op te lossen en vervolgens in de repository vast te leggen. Wanneer u werkt aan een softwareproject is het een goede gewoonte om te controleren of het programma nog goed werkt nadat u de repository hebt bijgewerkt. Het kan namelijk zo zijn dat de door u gemaakte aanpassingen en andermans aanpassingen nadelig hebben gewerkt op de programmacode waardoor het programma niet meer werkt.

Opmerking

Een andere veelvoorkomende fout is de foutmelding Sticky tag 'X' for file 'X' is not a branch. Dit gebeurt wanneer u probeert een bestand vast te leggen die u eerder naar een bepaalde revisie of tag heb gebracht met het commando:

%cvs update -r X

(wat bijv. het geval is als u kiest voor GeavanceerdBijwerken naar tag/datum...). In zo'n geval zal de tag op het bestand "sticky" worden, wat wil zeggen dat verdere updates niet de nieuwste revisie aan die branch toevoegt. Wanneer u verdere revisies wilt vastleggen binnen de branch zult u de branch-tag moeten bijwerken voordat u weer een commit kunt uitvoeren.

Met Cervisia is het vrij gemakkelijk om een ChangeLog-bestand te onderhouden dat voldoet aan het formaat zoals is omschreven in de standaarden voor GNU-programmeren (GNU coding guidelines). Om deze te gebruiken kiest u voor BestandChangeLog-ingang invoegen.... Wanneer een bestand met de naam ChangeLog bestaat in de hoofdmap van de sandbox, zal dit bestand worden geladen. Vervolgens heeft u de mogelijkheid om deze te bewerken. Aan de bovenzijde van dit bestand wordt een regel met de huidige datum en uw gebruikersnaam (wat kan worden ingesteld zoals staat beschreven in de sectie de paragraaf met de naam “Algemeen”) aangemaakt. Wanneer u klaar bent met het invullen van het venster klikt u op de knop OK. De volgende keer dat het venster "CVS commit" wordt aangeroepen zult u zien dat u het laatste ChangeLog-bericht is toegevoegd aan de ChangeLog.