Watches gebruiken

Een watch is een conventionele naam voor de mogelijkheid binnen CVS om gebruikers van de repository in te lichten wanneer een bestand gewijzigd is of wanneer een ontwikkelaar is begonnen met het bewerken van een bestand. Het gebruik van watches vereist dat het bestand$CVSROOT/CVSROOT/notify correct is ingesteld. Hier gaan we verder niet op in, wanneer u verdere informatie nodig heeft hoe u dit kunt instellen, vanuit het oogpunt van de systeembeheerder, kunt u één van de boeken lezen die genoemd worden in de appendix.

Cervisia ondersteunt hoofdzakelijk watches via zes menu-opties.

Om een watch toe te voegen op een of meerdere bestanden, gebruik dan GeavanceerdWatch toevoegen.... In het dialoogvenster dat u krijgt kunt u kiezen voor welk type voorval, dat door CVS wordt ondersteund, u gewaarschuwd wil worden. Bijvoorbeeld, wanneer u alleen maar gewaarschuwd wil worden wanneer een bestand wordt vastgelegd (commit) selecteer dan de keuzeoptie Alleen en Vastleggingen (commits). Wanneer u gewaarschuwd wilt worden over elk voorval met de gemarkeerde bestanden selecteer dan de keuzeoptie Alles. De bijbehorende commandoregel is:

cvs watch add -a commit bestandsnamen

of met een soortgelijk commando, afhankelijk van het voorval dat u in de gaten wilt houden.

Wanneer u niet meer geïnteresseerd bent in het "watchen" van deze bestanden dan kunt u de toegepaste watches verwijderen. Om dit te bereiken gebruikt u GeavanceerdWatch verwijderen.... In het dialoogvenster dat u krijgt, zijn dezelfde opties voorhanden als toen u de watch toevoegde. Wanneer u dit dialoogvenster bevestigt gebruikt Cervisia het commando:

cvs watch remove bestandsnamen

mogelijk met de parameter -a voor het gekozen voorval.

Uiteindelijk kunt u een lijst van mensen krijgen die een aantal bestanden volgen. Kies GeavanceerdWatchers tonen. Gebruik van deze menu-optie zal het volgende commando genereren:

cvs watchers bestandsnamen

Normaliter zal iedere ontwikkelaar apart werken in zijn uitgecheckte sandbox. Wanneer hij een bestand wil aanpassen, kan hij deze gewoon aanpassen in zijn editor en eraan werken. Niemand anders zal hiervan op de hoogte zijn totdat hij zijn werk vastlegt (commit).

Voor sommige ontwikkelaarsgroepen is dit niet het gewenste samenwerkingsmodel. Zij prefereren dat zij worden gewaarschuwd wanneer iemand aan een bestand gaat werken. Dit kan bereikt worden door CVS-commando's. Voordat u begint met het bewerken van een bestand, selecteert u het en kiest GeavanceerdBestanden bewerken in het hoofdvenster van Cervisia. Dit zal het volgende commando uitvoeren:

cvs edit bestandsnamen

Dit zal een melding sturen naar iedereen die de watch Bestanden bewerken op dit bestand heeft gezet. Het zal u tevens registreren als een editor van het bestand. U kunt een lijst verkrijgen van alle mensen die bestanden bewerken via GeavanceerdEditors tonen. Dit staat gelijk aan het volgende wat men op de commandoregel kan typen:

cvs editors bestandsnamen

Een sessie waarbij men het bestand bewerkt wordt automatisch beeindigd wanneer men het betreffende bestand vastlegt (commit). Op dat moment zal een melding bewerking beëindigd gestuurd worden naar iedereen die een watch heeft geregistreerd op het bestand. Natuurlijk zou u soms niet het bestand willen vastleggen maar eerder de sessie waarbij men het bestand aan het bewerken is beëindigen en terugkeren naar de vorige versie van het bestand. Dit wordt gedaan door gebruik te maken GeavanceerdBestandsbewerking verwijderen. Merk op dat Cervisia geen bevestiging zal vragen! Dat betekent dat bij gebruik van deze menu-optie al uw werk sinds het gebruik van GeavanceerdBestanden bewerken ongedaan gemaakt zal worden. Cervisia zal het volgende commando gebruiken:

echo y | cvs unedit bestandsnamen

Tot nog toe hebben we alleen het geval besproken waarbij bestanden werden bewerkt of waarbij de bewerking vrijwillig door de ontwikkelaars ongedaan werd gemaakt. Daar komt bij dat CVS een model ondersteunt waarbij men het gebruik van deze commando's afdwingt. Het commando wat verantwoordelijk is om naar dit model om te schakelen is het commando cvs watch on waarop we in deze helptekst niet verder zullen gaan omdat het meestal gebruikt wordt door de beheerder van de repository. Daarentegen is het een belangrijk gegeven vanuit het oogpunt van de ontwikkelaar wanneer het project [edits] afdwingt dat men werkt op een werkkopie die alleen-lezen is. Wat betekent dat je een bestand standaard niet kan bewerken (tenzij u dingen gaat uithalen zoals chmod). Alleen wanner je gebruik maakt van GeavanceerdBestanden bewerken, wordt het bestand weer beschrijfbaar. Het wordt weer alleen-lezen gemaakt wanneer je het bestand vastlegt (commit) of wanneer je GeavanceerdBestandsbewerking verwijderen.

De editor interface van Cervisia helpt u met projecten waarbij men watches op een andere wijzeafdwingt . Wanneer u net de editor gestart hebt met een bestand die alleen-lezen is door erop te dubbelklikken of via Bestand Bewerken, zou het niet mogelijk zijn om vervolgens uw aanpassingen later te bewaren. Dit heeft natuurlijk een reden. Wanneer u een bestand wilt veranderen zult u eerst het commando cvs edit moeten draaien zodat alle mensen die het bestand in de gaten houden (middels watch) een melding krijgen dat u aan het bestand werkt.

In zo'n geval is het aan te raden om de optie Instellingencvs edit automatisch uitvoeren wanneer nodig. Wanneer het dan nodig is een bestand te bewerken door erop te dubbelklikken zal Cervisia het commando cvs edit uitvoeren alvorens de editor daadwerkelijk wordt aangeroepen. Vervolgens kunt u het bestand zoals gewoonlijk bewerken. Wanneer u klaar bent met uw werk, legt u de bestanden vast en vervolgens zijn de vastgelegde bestanden weer alleen-lezen.