# &cervisia;-håndbogen

Bernd Gehrmann

    bernd@mail.berlios.de

&erik.kjaer.pedersen.role;
1999 2000 2001 2002 Bernd Gehrmann

Dette programmet distribueres under betingelseren i Q Public License, ifølge definitionen af Trolltech AS i Norge, hvilket fremgår af filen LICENSE.QPL som indgår i pakken sammen med denne filen.

Dette program distribueres i håb om at det skal være nyttigt, men UDEN NOGENSOMHELST GARANTI, endog uden underforstået garanti om SALGBARHED eller BRUGBARHED TIL NOGET SÆRLIGT FORMÅL.

&FDLNotice;
2002-06-30
2.00.00

&cervisia; sørger for et grafisk billede af &CVS;.

KDE kdesdk Cervisia CVS versionskontrol revisionskontrol

## Kom i gang

### Adgang til lageret

I dette afsnittet antager vi at du kun anvender &CVS; på klientsiden. Det betyder at nogen (antagelig administratoren af &CVS;-lageret) har givet dig en konto på servermaskinen, og det er dit job at checke moduler ud fra lageret og bruge dem.

&CVS; understøtter flere metoder for at få adgang til lageret, som kan opdeles som følger:

Lokal

  Lageret hedder noget i retning af `/home/cvs/` og opbevares helt enkelt i en mappe som er tilgængelig fra din maskine. Den kan fysisk findes på en disk som er monteret via NFS, men dette er en uvigtig detalje. Hvis du ofte bruger et vist lokalt lager, vil du fortælle &cervisia; om det;

  Tilføj et lokalt lager

  - Åbn lagerdialogen ved at vælge Lager Lagre....

  - Tryk på knappen Tilføj...

  - Indtast information om lageret i dialogen som vises.

  - Bekræft ved at trykke på knappen O.k..

  I fremtiden, når du bruger &cervisia; til at checke en ny modul ud, så viser &cervisia; de lagre som du har tilføjet her.

rsh

  Lagerets navn er noget i retning af `:ext:bernd@cvs.cervisia.sourceforge.net:/cvsroot/cervisia`.

  Denne metode kræver at du har en brugerkonto på serveren (i dette tilfælde, cvs.sourceforge.net og bruger en fjernskal til kommunikation. Normalt bruger &CVS; ↱ til dette formål, men ↱ har siden længe være anset for at være usikker, og er erstattet af &ssh; mange steder.

  Hvis du skal bruge &ssh;, skal du indstille miljøvariablen $`CVS_RSH` til &ssh; når du bruger `cvs`-klienten. &cervisia; understøtter dette på en enkel måde.

  Åbn lager-dialogen igen, og tryk på knappen Tilføj.... Indtast lagerets navn på første linje, og fjernskallen (⪚ &ssh;) på den anden linje. Hvis du nu bekræfter med knappen O.k., kommer &cervisia; til at huske disse indstillinger.

  Bemærk at &cervisia; ikke kan svare på en eventuel forespørgsel om kodeord fra servermaskinen. Du skal sørge for at disse indlogninger fungerer uden at du skal indtaste kodeordet. Med den almindelige enkle ↱, kan dette opnås ved for eksempel at oprette filen ``$HOME`/.rhosts` med en liste med pålidelige værtsmaskiner (se manualsiden for ↱).

  Med &ssh;, kan det opnås ved at kopiere din åbne nøgle ``$HOME`/.ssh/identity.pub` til serveren. I dette tilfælde må nøglen ikke være krypteret med et løsen (se manualsiden for &ssh; og almindelige spørgsmål om &CVS;/SSH på SourceForge). Hvis du er usikker på dissen ting, så spørg systemadministratoren.

pserver

  Lager-navnet ser ud sådan her`:pserver:gehrmab@cvs.kde.org:/home/kde`

  Denne metode giver adgang til serveren via en speciel protokol med en relativt svag godkendelseskontrol (`pserver` står for godkendelseskontrol med kodeord). Inden du kan bruge en sådan server, skal du logge på. Eftersom dette ikke direkte understøttes af &cervisia;, skrives i kommandolinjen

      %cvs -d :pserver:persmed@cvs.kde.org:/home/kde login

  (naturligvis med dit lager i stedet). &CVS; spørger efter dit kodeord og kontrollerer det med serveren. Hvis kodeordet er o.k., tilføjes navnet på lageret sammen med (det noget forvanskede) kodeord til i filen ``$HOME`/.cvspass`. Så snart &CVS; vil have adgang til lageret, sendes kodeordet til serveren uden at spørge, så du behøver ikke tage dig af det mere når du har været logget på. Eftersom alle som kender dit kodeord kan arbejde med lageret under dit navn (og til og med gøre stor skade i det), bør du holde filen ``$HOME`/.cvspass` hemmelig og ulæselig for andre.

### Importér et modul til lageret

I dette afsnit beskriver vi hvordan du tilføjer et nyt projekt til &CVS;-lageret. Hvis du kun vil arbejde med et eksisterende projekt som allerede findes på lageret, kan du springe over dette afsnit.

Et skærmaftryk af &cervisia;s importdialog

Et skærmaftryk af &cervisia;s importdialog

I kan du se dialogen som hjælper dig med at importere et projekt som et modul. Efter du har udfyldt denne formular og bekræftet med O.k., bruges følgende &CVS;-kommando:

    cvs -d lager import -m "" modul leverandørmærke versionsmærke

Navnet på &CVS;-lageret, også kendt som $`CVSROOT`. Du skal have skriverettigheder til lageret, og det skal være rigtigt initieret. Hvis lageret ikke findes endnu, initieres det med kommandoen ``cvs` `-d` lager `init``.

Hvis lageret er på en anden maskine, skal du sørge for at godkendelseskontrollen virker (se ).

Navnet på modulet hvor projektet bliver opbevaret. Efter importen, kan projektet checkes ud under dette navn. Se for mere information. Dette er også navnet på den tilsvarende mappe i lageret.

Mærket for leverandøren bruges historisk for at følge kildekode fra tredje part. Brug blot dit brugernavn hvis du ikke har nogen bedre idé. Det spiller ikke så stor rolle hvad du skriver her.

Dette mærke bruges også historisk til at importere forskellige versioner af programmel fra tredje part. Hvis du ikke gør dette, brug ordet `start` eller strengen `PROJEKT_1_0`, hvor `PROJEKT` er navnet på dit projekt og `1.0` er versionsnummeret for den importerede version.

Arbejdsmappe

Dette er topniveaumappen for projektet som du vil importere. Importen begynder i denne mappe og går nedad rekursivt.

Ignorér filer

Hvis du udfylder dette felt, gives det yderligere flag `-I filnavn` til kommandoen `cvs import`. Denne parameter tolkes som en liste med filnavnemønstre, adskilte af mellemrum, som ignoreres. I almindelighed er en renere og mindre fejlbehæftet måde at styre hvilke filer som havner i lageret, at oprette en mappe med kun de filer som du vil importere og gå ud fra den. Ikke desto mindre, kan dette felt være nyttigt hvis projektet indeholder filer som normalt ignoreres af &CVS;, ⪚ filer med navnet `core`. Hvis dette er tilfældet, så skriv blot tegnet `!` i feltet. Dette sætter &CVS;'s måde at ignorere filer ud af kraft, se .

Importér som binære filer

Hvis du markerer denne boks, importeres alle filer som binære filer, dvs. flaget `-kb` angives for `cvs import`.

### Check et modul ud fra lageret

Inden du arbejder med et projekt som har revisionskontrol, skal du checke en arbejdskopi ud.

Et skærmaftryk af &cervisia;s udcheckningsdialog

Et skærmaftryk af &cervisia;s udcheckningsdialog

Lager

Navnet på &CVS;-lageret, også kendt som ``$CVSROOT``. Hvis lageret er på en anden maskine, skal du sørge for at godkendelseskontrollen virker, se .

Modul

Navnet på modulet som skal checkes ud. Hvis du arbejder med et eksisterende lager, har du formodentlig fået dette navn fra administratoren. Ellers, hvis lageret har en fil som hedder ``$CVSROOT`/modules`, kan du hente en liste over tilgængelige moduler ved at klikke på knappen Hent liste.

Arbejdsmappe

Mappen hvor modulet skal checkes ud. Bemærk at topniveaumappen for arbejdskopien altid laves som en mappe med samme navn som modulet under mappen som angives her.

### Hovedskærmen

Når du starter &cervisia;, og åbner en arbejdskopi ved at vælge Fil Åbn arbejdsmappe... ser du en hierarkisk visning af den nuværende mappe. Afhængig af indstillingerne i filen `.cvsignore`, vises filer som du normalt ikke vil have i lageret ikke, ⪚ objektfiler. For hver fil ses den tilsvarende status. Med de normale indstillinger er dette "Ukendt" eftersom &cervisia; venter med at hente information til du vælger Opdatér eller Status i Fil-menuen. På denne måde har du en minimal funktionalitet tilgængelig også selvom du ikke har en permanent tilslutning til &CVS;-serveren.

Et skærmaftryk af &cervisia;s hovedvindue

Et skærmaftryk af &cervisia;s hovedvindue

Kommandoerne i Fil-menuen gælder almindeligvis kun filerne som du har markeret. Du kan også markere mapper. Vælg nu Opdatér i Fil-menuen. &cervisia; kører så kommandoen

    cvs update -n filnavn

for at hente statusinformation for de markerede filer. Bemærk at &cervisia; kun går ind i undermapper rekursivt, hvis du har aktiveret det tilsvarende punkt i menuen Opsætning. Afhængig af hver fils status, ser du nu noget i søjlen Status.

- Ændret lokalt - Dette betyder at du har ændret filen sammenlignet med versionen i lageret.

- Tilføjet lokalt - Dette betyder at filen ikke findes i lageret, men den findes i din arbejdsmappe og du har skemalagt den for at tilføjes. Filen indsættes først rigtigt i lageret efter en indsendelse.

- Fjernet lokalt - Dette betyder at du har skemalagt filen til at fjernes, men den findes stadigvæk i lageret. Filen fjernes først rigtigt efter en indsendelse (commit).

- Behøver opdatering - Dette viser om en nyere version af filen findes i lageret, ⪚ på grund af at nogen har indsendt en ændring. Normalt vil du opdatere filen så du har en opdateret version i din mappe.

- Behøver rettelse - Dette er i alt væsentligt det samme som ovenfor. Forskellen er kun vinket at ved en opdatering, overfører &CVS;-serveren kun en rettelse i stedet for hele filen til dig.

- Behøver indfletning - Angiver at en indfletning af versionen i din arbejdsmappe med versionen i lageret er nødvendig. Dette sker oftest hvis du har lavet ændringer i filen mens en anden har indsendt sine ændringer. Hvis du vælger at opdatere, sammensættes ændringerne i lageret med din fil. Hvis der opstår konflikter (dvs. en anden har ændret de samme linjer som du har) er filens nye status "Konflikt".

- Opdateret - Angiver at filen er identisk med versionen i lageret.

- Konflikt - Dette vises hvis denne filen stadigvæk har konfliktmarkeringer i sig. Måske har du tidligere opdateret filen og ikke løst konflikterne.

- Ikke i CVS - Angiver at filen ikke er registreret i &CVS;-lageret. Hvis du ønsker at den skal være tilgængelig for andre, skal du tilføje den til lageret. Hvis ikke, kan du overveje at tilføje den til filen `.cvsignore`.

Når du nu har fået et overblik over nuværende status i CVS, vil du måske ønske at opdatere. Markér nogle filer (eller roden i mappetræet, hvilket svarer til at markere alle filer i mappen. Vælg nu Opdatér i Fil-menuen. (Du kunne naturligvis have valgt dette allerede fra begyndelsen). Status kan nu ændres for visse filer. Normalt opdateres filer som havde status "Behøver rettelse" eller "Behøver at opdateres". Følgende nye værdier er altså mulige i statussøjlen:

- Opdateret - Viser om filen blev opdateret fra lageret.

- Rettet - Angiver at &CVS;-serveren har sendt en rettelse for denne fil, og at rettelsen er passet ind med heldigt resultat. Hvis rettelsen ikke lykkedes på grund af at der var en konflikt mellem dine ændringer og dem som en anden har indsendt, er status nu "Konflikt".

Du har måske bemærket at afhængig af filens status, har dens linje en anderledes farve. Farverne er valgte for på en måde at angive statusprioriteten. En fil med konflikter er for eksempel markeret med rødt for at vise dig at du skal løse op for en konflikt inden du kan fortsætte med at arbejde med filen. Hvis mappen indeholder et stort antal filer, kan du ikke desto mindre tabe overblikket. For at få mere kortfattet information om hvilke filer der har en usædvanlig status, klikkes helt enkelt på overskriften for søjlen Status. Fillisten sorteres nu ifølge prioritet, så du har al vigtig information øverst på listen. For at gå tilbage til en alfabetisk sorteret liste, klikkes på overskriften for søjlen Filnavn.

## Arbejde med filer

Alle almindelige funktioner i &CVS; er direkte tilgængelige i &cervisia;s hovedvindue. Kommandoerne gælder oftest flere filer på én gang, nemlig alle markerede filer. Hvis mapper også er markerede, afhænger tolkningen af indstillingerne som blev lavet i menuen Opsætning. Hvis Opsætning Indsend og fjern rekursivt for eksempel er markeret og du vælger Fil Indsend... mens en mappe er markeret, indsendes alle filer i træet under denne mappe. Ellers påvirkes kun de almindelige filer i mappen selv.

Du kan helt enkelt redigere en fil ved at dobbeltklikke på den eller trykke på returtasten. Dette starter editoren som er indstillet i Opsætning Indstil Cervisia... med filnavnet som parameter.

### Tilføj filer

At tilføje filer i et projekt kræver to skridt: Først skal filerne registreres i &CVS;. For at kunne gøre dette, markeres alle filer som skal tilføjes i &cervisia;s hovedvindue. Vælg derefter Fil Tilføj til lager. &cervisia; kører kommandoen

    cvs add filnavn

Hvis handlingen lykkedes, skal statussøjlen lyde "Tilføjet til lageret" for de tilføjede filer.

For virkelig at indsende filerne til lageret, skal du "indsende" dem (commit). Denne procedure har en vigtig fordel: Du kan indsende disse filer sammen med ændringer i andre dele af projektet. Når man gør dette kan man let se (⪚ i e-post ) at alle disse ændringer er en del af en helhed.

&CVS; er ikke konstrueret til at tage sig af meningsfuld versionskontrol for binære filer. At indflette binære filer, er for eksempel oftest ikke meningsfuldt. Desuden ekspanderer &CVS; normalt nøgleord (⪚ for strengen `$Revision: 1.6 $`) når en fil indsendes. For binære filer kan en sådan ekspansion forstyrre filen og gøre den fuldstændig ubrugelig. For at lukke af for denne opførsel skal du indsende binære filer (eller andre filer, såsom Postscript) med en kommandolinje af typen

    cvs add -kb filnavn

I &cervisia;, kan dette opnås ved at vælge Fil Tilføj binærfil...

### Fjern filer

Præcis som at tilføje filer, så fjernes filer i to skridt: Først skal filerne registreres til at fjernes ved at vælge Fil Fjern fra lager, hvilket kører kommandoen

    cvs remove -f filnavn

Derefter skal denne ændring i arbejdsmappen indsendes, muligvis sammen med andre ændringer i projektet.

Kommandoen ovenfor virker kun hvis filen er opdateret. Ellers får du en fejlmeddelelse. Denne opførsel er fornuftigt: Hvis du har ændret filen sammenlignet med versionen i lageret, eller hvis en anden har lavet nogle ændringer, vil du nok først kontrollere om du virkelig vil kassere dem.

### Tilføj og fjern mapper

Mapper håndteres fuldstændig anderledes af &CVS; sammenlignet med almindelige filer. Ingen versionskontrol udføres af mapper, dvs. du kan ikke afgøre hvilke mapper der fandtes i projektet på et vist tidspunkt. Desuden kan mapper aldrig rigtigt fjernes (medmindre de fjernes direkte i lageret).

Som en erstatning, følger &CVS; konventionen at en mappe "ikke eksisterer" i en version af projektet hvis den er tom. Denne konvention følges ved at bruge flaget `-P` i kommandoerne `cvs update` og `cvs checkout`. Denne valgmulighed kan angives i menuen Opsætning Fjern tomme mapper ved opdatering.

En mappe kan tilføjes til lageret med kommandoen

    cvs add mappenavn

hvilket følger af menupunktet Fil Tilføj i lager. Bemærk at i modsætning til at tilføje filer, kræves ingen indsendelse når mapper tilføjes.

### Indsend filer

Når du har udført et vist antal ændringer i din arbejdskopi, og du vil at andre udviklere skal få adgang til dem, så 'indsender' du dem. Ved en indsendelse, lægger du dine versioner af de ændrede filer ind som nye versioner i lageret. En senere opdatering af en anden udvikler, gør at dine ændringer indføres i hans arbejdskopi.

For at indsende nogle filer, markeres de i &cervisia;s hovedvindue, og Fil Indsend... vælges.

Et skærmaftryk af &cervisia;s indsendingdialog

Du får en dialog som viser dig en liste med de markerede filer længst oppe, og en logmeddelelse som du kan ændre længst nede. Når du er færdig med dialogen, køres kommandoen

    cvs commit -m meddelelse filnavn

&cervisia; hjælper til på flere måder med at angive en meningsfuld logmeddelelse: For det første kan du dobbeltklikke på en fil eller trykke på returtasten for at se ændringerne som du har lavet i filen. For det andet får du en liste med logmeddelelser som du tidligere har brugt i en dropned-boks. For det tredje er denne dialog sammenkoblet med &cervisia;s editor for ændringslog som beskrives nedenfor.

En almindelig fejl som du kan støde på når du indsender er "Up-to-date check failed" (kontrol af at filen er opdateret mislykkedes). Dette angiver at nogen har indsendt ændringer siden du sidst opdaterede. Eller, mere teknisk, at din basisversion ikke er den seneste i sin gren. For et sådant tilfælde, nægter &CVS; at indsende dine ændringer til lageret. Løsningen er at opdatere, opløse eventuelle konflikter, og indsende igen. Hvis du arbejder med et progammelprojekt, er det naturligvis normalt en god vane at kontrollere om programmet stadigvæk virker efter du har opdateret. Der kan jo trods alt findes skjulte sammenhænge mellem dine ændringer og andres ændringer som giver anledning til fejl i koden.

En anden almindelig fejl giver fejlmeddelelsen "Sticky tag 'X' for file 'X' is not a branch" (klæbrig mærke 'X' for filen 'X' er ikke en gren). Dette indtræffer hvis du forsøger at indsende en fil som du tidligere har opdateret til en vis revision eller mærke med kommandoen

    %cvs update -r X

(som ⪚ bruges af menupunktet Avanceret Opdatér til mærke/dato...). I dette tilfælde, bliver filens mærke klæbrigt, dvs. følgende opdateringer skifter ikke til den seneste revision på grenen. Hvis du vil tilføje flere versioner på grenen, så skal du opdatere til grenens mærke inden du indsender yderligere versioner.

Det er let at vedligeholde en ændringslog, som følger formatet som angives i GNU's kodningsregler, med &cervisia;. For at gøre dette, vælges Fil Indsæt indgang i ændringsloggen... . Hvis en fil som hedder `ChangeLog` (ændringslog) findes i arbejdsmappens topniveau, indlæses den og du har mulighed at redigere den. For at kunne gøre dette, er der en indgang tillagt med dagens dato og dit brugernavn (som kan indstilles ifølge beskrivelsen i ). Når du afslutter dialogen ved at klikke på O.k., kommer næste indsendingsdialog til at få samme logmeddelelse som meddelelsen du skrev i ændringsloggen.

### Løs op for konflikter

Konflikter kan opstå så snart du har lavet ændringer i en fil som også er ændret af en anden udvikler. Konflikten detekteres af &CVS; når du opdaterer den ændrede fil. &CVS; forsøger at indflette ændringerne som blev indsendt af den anden udvikler i din arbejdskopi. Sammenføjningen mislykkes hvis både dine og hans ændringer er i overlappende dele af filen, og &CVS;-serveren udskriver så en fejlmeddelelse.

Nu er det dit job at løse op for konflikterne inden du indsender filen. &CVS; nægter at indsende enhver fil med konflikter før den er redigeret. Du har naturligvis fuldstændig frihed når et sæt konflikter skal opløses: for hver konflikt kan du bestemme dig for at vælge en af to forskellige versioner. Du kan også bestemme dig for at begge angrebsmåder er fejlagtige og omskrive hele rutinen eller hele filen fra begyndelsen.

Filer med konflikter angives med "Konflikt" og med rød farve i &cervisia;s hovedvindue. I hovedvinduet kan du naturligvis løse op for konflikter på den traditionelle måde: Dobbeltklik blot på filen det drejer sig om, og redigér den med din foretrukne editor. Men du kan også vælge at bruge dialogen som er tilgængelig via Fil Resolvér....

Et skærmaftryk af &cervisia;s dialog for at løse op for konflikter

Et skærmaftryk af &cervisia;s dialog for at løse op for konflikter

Længst oppe i dialogen ser du din version af filen til venstre og versionen i lageret til højre. Forskellene mellem dem er angivet med rød farve. Under disse to versioner, kan du se den sammensatte version som gemmes så snart du klikker på knappen Gem.

Du kan skifte mellem forskellige afsnit ved at trykke på << og >>. Længere ned i midten af dialogen ser du hvilket afsnit der er er markeret for øjeblikket. For eksempel så betyder `2 ud af 8` at du for øjeblikket er ved det andet afsnit ud af totalt otte. Nu kan du bestemme afsnit for afsnit hvilken af de to versioner som du vil have i den sammensatte fil. Ved at trykke på A, vælger du versionen som du redigeret. Ved at trykke på B, overtager du versionen fra lageret.

## Skaf information om filer

### Gennemsyn af CVS-logger

Når du markerer en fil i hovedvinduet og vælger Gennemse log i menuen Vis, udføres en

    cvs log filnavn

kommando og en dialog vises som angiver versionshistorikken for den markerede fil.

Et skærmaftryk af &cervisia;s dialog til at gennemse logger

Et skærmaftryk af &cervisia;s dialog til at gennemse logger

Du kan vælge at se historikken som et træ, eller i listeform. Hvilket du foretrækker er naturligvis et spørgsmål om smag og afhænger af hvilken information du er interesseret i. Træet er en intuitiv repræsentation af hvad der er gjort i forskellige grene af forskellige forfattere. Du kan se tilsvarende logmeddelelser som værktøjsvink. Listen er i sin natur lineær, og giver derfor ikke umiddelbar information om grene. På den anden side, koncentreres anden relevant information på mindre plads, nemlig tiden for hver ændring i filen og første del af logmeddelelsen.

For at få mere information om en vis version, kan du enten klikke på den i listen eller træet. Feltet i mitten af dialogen udfyldes så med den fuldstændige informationen som gives af kommandoen `cvs log`. Du kan markere to versioner, som kaldes 'A' og 'B', som har betydning for om du vil bruge de yderligere funktioner som varetages af knapperne. Version 'A' kan vælges med venstre museknap, og version 'B' med den midterste knap. Du kan også navigere i listen med piletasterne. For at markere versionerne 'A' og 'B', bruges de to genvejstaster Ctrl A og Ctrl B.

Hvis du trykker på knappen Kommentér, så vises en dialog med teksten fra filen som hører til versionen som er markeret som 'A'. Hver linje indledes med information om hvem der redigerede den senest, og ved hvilken version dette skete.

Hvis du trykker på knappen Sammenlign, så køres kommandoen `cvs diff` og en dialog vises hvor forskellene mellem de to markerede versioner vises. For at gøre det let at se ændringer, bruges forskellige farver til at markere linjer som er tilføjet, fjernet eller helt enkelt ændret.

### Gennemse historikken

Hvis lageret som bruges har logning aktiveret, kan &cervisia; vise en historik af visse begivenheder såsom udcheckninger, indsendelser, mærkninger, og opdateringer. Vælg Historik i menuen Vis, så kører &cervisia; kommandoen

    cvs history -e -a

Dette henter den fuldstændige logfil fra serveren, dvs. en liste over begivenheder for alle brugere og alle moduler. Dette kan være en enorm mængde data!

Nu kan du se listen med begivenheder, sorterede efter dato. I den anden søjle vises typen af begivenheden:

- Udchecket - Brugeren som vises i søjlen Forfatter har checket en modul ud

- Mærket - En bruger har brugt kommandoen `cvs rtag`. Bemærk at brugen af `cvs tag` (som gøres med &cervisia;s kommando Avanceret Mærk/gren...) ikke opbevares i historikdatabasen. Dette har historiske grunde (se almindelige spørgsmål om &CVS;).

- Udgivelse - En bruger har udgivet modulet. I virkeligheden bruges denne kommando sjældent og er ikke af stor værdi.

- Opdatér, slettet - En bruger har lavet en opdatering af en fil som var slettet i lageret. Som en konsekvens af dette, er filen slettet i hans arbejdskopi.

- Opdatér, kopieret - En bruger har lavet en opdatering af filen. En ny version kopieredes til arbejdsmappen.

- Opdatér, indflet - En bruger har lavet en opdatering af en fil. Ændringerne i lagerets version af filen indflettedes i hans arbejdskopi.

- Opdatér, konflikt - En bruger har lavet en opdatering af en fil, og en konflikt med hans egne ændringer blev opdaget.

- Indsend, ændret - En bruger indsendte en ændret fil.

- Indsend, tilføjet - En bruger tilføjede en fil og indsendte den.

- Indsend, fjern - En bruger fjernede en fil og indsendte ændringen.

Et skærmaftryk af &cervisia;s historikdialog

Et skærmaftryk af &cervisia;s historikdialog

Du kan sortere listen efter andre betingelser ved at klikke på de respektive søjleoverskrifter. For at sortere de historikindgange som du er interesseret i, er der forskellige filtreringsmuligheder som aktiveres med afkrydsningsbokse:

- Vis indsendingsbegivenheder - viser indsendinger

- Vis udcheckningsbegivenheder - viser udcheckninger

- Vis mærkebegivenheder - viser mærkninger

- Vis øvrige begivenheder - viser begivenheder som ikke indgår i ovenstående

- Kun bruger - viser kun begivenheder som er forårsaget af en bestemt bruger

- Kun filnavne som matcher - filtrerer filnavne med et regulært udtryk

- Kun mapper som matcher - filtrerer mappenavne med et regulært udtryk

Særlige tegn som genkendes af matchning med regulære udtryk er:

- `x*` matcher et vilkårligt antal forekomster af tegnet `x`.

- `x+` matcher en eller flere forekomster af tegnet `x`.

- `x?` matcher nul eller en forekomst af tegnet `x`.

- `^` matcher begyndelsen af strengen.

- `$` matcher slutningen af strengen.

- `[a-cx-z]` matcher et sæt tegn, ⪚ her sættet som består af a,b,c,x,y,z.

### Overvågning af forskelle mellem versioner

Der er flere steder i &cervisia; hvor du kan bede om et vindue som viser forskelle mellem filversioner:

- I hovedvinduet kan du vælge Vis Forskel mod lageret.... Dette baseres på kommandoen `cvs diff` og viser dig forskellen mellem versionen i din arbejdsmappe og versionen som du senest opdaterede (også kendt som basisversionen). Dette er særligt nyttigt præcis lige inden du indsender en fil, for at finde en passende logmeddelelse.

- Du kan bede om et forskelsvindue ved at vælge et filnavn i listen over markerede filer, i dialogen som vises når du indsender et sæt filer, ved at vælge et filnavn i listen, enten ved at dobbeltklikke på det eller ved at trykke på returtasten. Dette er ganske lig brugen af Vis Forskel mod lageret... i hovedvinduet, med den respektive fil.

- Du kan markere to versioner af en fil i dialogen til at gennemse logger, og bede om en dialog som viser forskellene mellem dem (se ).

Som du måske forventede, så dumper &cervisia; ikke blot resultatet fra kommandoen `diff` ud på terminalen, men giver en grafisk visning som set i .

Et skærmaftryk af &cervisia;s sammenligningsdialog

Et skærmaftryk af &cervisia;s sammenligningsdialog

Teksten i dialogen er en forbedret variant af teksten som gives af kommandoen diff med flaget `-u`. Du kan se de forskellige versioner i to vinduer, med linjer som arrangeres så du kan sammenligne dem side ved side. Dette betyder at hvor tekst er tilføjet eller fjernet, viser hvert vindue tomme linjer med markeringen `+++++` til venstre. For andre linjer kan du se løbende linjenumre i venstre søjle.

I den anden søjle i højre vindue kan du se hvilken slags ændring som er gjort. Mulige slags er `Tilføjet`, `Slettet` og `Ændret`. Tilsvarende linjer er markerede med blå, grøn og rød farve. Midt i dialogen vises et komprimeret billede af farvemarkeringerne. På denne måde kan du få en hurtig oversigt over filens fuldstændige ændringer. Du kan også bruge placeringen af de farvede områder i det komprimerede billede til orientering når du bruger rullebjælkerne.

Normalt synkroniseres rullebjælkerne i venstre og højre vindue, dvs. hvis du flytter venstre side, så flyttes højre siden lige så meget. Du kan ændre dette ved at markere boksen Synkronisér rullebjælker.

For information om hvordan man indstiller sammenligningsdialogen, se .

### Overvåg en annoteret visning af en fil

Med kommandoen `cvs annotate`, giver &CVS; en mulighed at se, for hver linje i en fil, hvem som senest har ændret linjen. Denne visning kan være til hjælp for at få styr på hvem der har introduceret en ændring i et programs opførsel, eller hvem man skal spørge om en vis ændring eller en vis fejl i koden.

&cervisia; giver dig adgang til denne funktion, men udvider informationen yderligere interaktivt. Du får en kommentarvisning ved at vælge Vis Kommentér.... En anden måde er at trykke på knappen Kommentér i dialogen CVS-log. På kan du se et skærmaftryk af dialogen.

Et skærmaftryk af &cervisia;s kommentardialog

Et skærmaftryk af &cervisia;s dialog for at opdatere til et mærke

I kommentardialogen ser du et vindue med den seneste version af den markerede fil. I søjlen inden teksten, får du en del information som har at gøre med den seneste ændring på hver linje. I den første søjle vises versionsnummeret. I den anden søjle ses forfatteren til versionen. Til sidst ses dato for de seneste ændringer af linjen i tredje søjle.

Derfor, hvis en vis linje ser mærkelig ud, eller du antager at der er en fejl der, kan du med det samme se hvem som er ansvarlig for linjen. Men ikke kun det, du kan også finde ud af hvorfor linjen blev ændret. For at gøre dette, flyttes musemarkøren hen over de respektive revisionsnumre. Så vises et værktøjsvink med logmeddelelser og datoer for ændringerne.

## Avanceret brug

### Mærking og grene

Her beskriver vi kun de tekniske aspekter af mærkning og grene. Hvis du kun er en bruger, og ikke administrerer lageret, kommer du nok ikke i kontakt med problemet. Hvis du i stedet selv administrerer lageret, bør du først læse om de ikke-tekniske problemer som følger med grene, for at få et indtryk af hvor stort tidsspilde og fejlbehæftelse det kan give anledning til at håndtere flere grene i et projekt. Appendiks indeholder nogle referencedokumenter om dette emne.

Enkel mærkning er noget som man ofte gør når en ny udgave udgives, så man når som helst let kan komme tilbage til projektets status på dette tidspunkt. Mærker gives ofte et navn som består af projektets navn og versionsnummeret. &cervisia; 1.0 findes for eksempel tilgængeligt med mærket `CERVISIA_1_0`. &cervisia; følger reglerne i &CVS; om hvad der er et gyldigt mærkenavn. Det skal begynde med er bogstav, og må indeholde bogstaver, cifre, bindestreger og understregningstegn.

Normalt vil man mærke et helt projekt (selv om &CVS; naturligvis tillader dig at mærke en delmængde). For at kunne gøre dette, markeres topniveaumappen i visningen og vælg Avanceret Mærke/gren vælges. Skriv nu mærkets navn, tryk på returtasten, og du er klar!

At oprette en gren er ikke særligt meget sværere: Markér boksen Opret gren med dette mærke i mærkningsdialogen. Du kan også fjerne et eksisterende mærke: Vælg Avanceret Slet mærke i hovedmenuen.

Der er flere måder at opdatere til en vis tilstand i projektet:

- Du kan opdatere til et vist mærke. Brug Avanceret Opdatér til mærke/dato for dette. Samme procedure bruges for at opdatere til en gren. Kommandoen som køres af &cervisia; er

      cvs update -r mærke

- Du kan opdatere til en vis dato. Dette kan være nyttigt hvis en fejl opstod i projektet mellem to udgaver, når du véd cirka mellem hvilke og har en opfattelse af hvornår det skete. Du kan gå til en bestemt dato ved at vælge Avanceret Opdatér til mærke/dato og markere afkrydsningsboksen Opdatér til dato. I feltet nedenfor kan du indtaste en stor mængde forskellige datoformater. Et muligt format er `åååå-mm-dd` hvor `åååå` er året, `mm` er måneden (numerisk) og `dd` er dagen. En anden mulighed er nogle engelske ord, såsom "`yesterday`" (i går) eller "`2 weeks ago`" (for to uger siden). Når du vælger dette, bruger &cervisia; kommandoen

      cvs update -D dato

- Begge ovenstående valgmuligheder gør mærket eller datoen 'klæbrigt', dvs. du kan ikke tilføje yderligere ændringer for disse filer (hvis ikke mærket er et grenmærke). For at komme tilbage til stammen, også kendt som grenen med navnet `HEAD` (hovedversionen), bruges menupunktet Avanceret Opdatér til hovedversion. Dette giver anledning til kommandoen:

      cvs update -A

Et skærmaftryk af &cervisia;s dialog for at opdatere til et mærke

Et skærmaftryk af &cervisia;s dialog for at opdatere til et mærke

En anden del af håndteringen af grene, er indfletning af ændringer fra en gren til den nuværende gren. Hvis du skal gøre dette, vælges Avanceret Flet.... Dialogen som vises har to valgmuligheder:

I det første tilfælde kan du sammensætte alle ændringer som er lavet i en gren med den nuværende gren. I dette tilfælde, markeres boksen Indflet fra gren og udfyld grenen som du vil indflette fra. &cervisia; kører så kommandoen

    cvs update -j grenmærke

Den anden mulighed er at du kun vil indflette ændringer som er lavet mellem to mærker på en gren. Dette indtræffer oftest hvis du indfletter fra samme gren til stammen flere gange. I dette tilfælde, markeres boksen Indflet ændringer og de to relevante mærker indskrives (i rigtig rækkefølge). Dette giver anledning til kommandoen

    cvs update -j grenmærke1 -j grenmærke2

### Brug overvågning

Overvågning er det sædvanlige navn for &CVS;-funktionen at sende meddelelser til brugere af lageret, så snart en fil er ændret eller en udvikler er begyndt at redigere en fil. Brug af overvågning kræver at filen ``$CVSROOT`/notify` er indstillet rigtigt. Dette beskrives ikke her. Hvis du behøver mere information om hvordan indstillinger foregår fra en administrators synvinkel, så læs en af bøgerne som er på listen i appendikset.

&cervisia;'s hovedunderstøttelse for overvågning er seks menupunkter.

For at tilføje overvågning af en eller flere filer, bruges Avanceret Tilføj overvågning.... I dialogen som kommer frem kan du vælge at få en meddelelse for alle slags begivenheder som &CVS; understøtter. Hvis du for eksempel kun vil have at vide hvornår en fil er indsendt, markeres boksene Kun og Indsendelse. Hvis du vil vise om alle begivenheder som gælder de markerede filer, markeres boksen Alle. Kommandolinjen som bruges når du bekræfter dialogen er

    cvs watch add -a commit filnavn

eller med et lignende flag, afhængig af begivenhederne som du vælger at overvåge.

Hvis du ikke længere er interesseret i visse filer, kan du fjerne overvågningen af dem. For at opnå dette, bruges Avanceret Fjern overvågning.... Samme valgmulighed som fandtes i formularen du udfyldte da overvågningen blev tilføjet indgår i dialogen som vises. Når du bekræfter dialogen, kør &cervisia; kommandoen

    cvs watch remove filnavn

muligvis med flaget `-a` for de valgte begivenheder.

Tilsidst kan du få en liste over hvem der overvåger nogle filer. Vælg Avanceret Vis overvågning. Aktivering af dette menupunkt giver anledning til kommandoen

    cvs watchers filnavn

I &CVS; normale brugsscenario, så arbejder hver udvikler for sig i en egen arbejdsmappe. Når en fil skal ændres, åbnes den kun i editoren og redigeres. Ingen anden kender til ændringerne, før end filen indsendes.

For visse udviklingsgrupper, er dette ikke samarbejdsmodellen som foretrækkes. De vil have at vide om nogen arbejder med en fil så snart arbejdet startes. Dette kan opnås med nogle yderligere &CVS;-kommandoer. Inden du begynder at redigere en fil, markeres den i &cervisia;s hovedvindue, og Avanceret Redigér filer vælges. Dette kører kommandoen

    cvs edit filnavn

Så sendes en meddelelse til alle som har indstillet `redigerings`overvågning for filen. Du registreres også som redigerer af filen. Man kan få en liste over alle som redigerer en vis fil ved at bruge Avanceret Vis redigering. Dette svarer til at skrive følgende på kommandolinjen

    cvs editors filnavn

En redigeringssession afsluttes automatisk når du indsender filen som er ændret. I det øjeblik sendes en `unedit`-meddelelse til alle som har registreret tilsvarende overvågning af filen. En gang imellem vil du naturligvis ikke indsende filen, men afbryde redigeringssessionen og gå tilbage til foregående version af filen. Dette gøres ved at bruge Avanceret Slut redigering af filer. Bemærk at &cervisia; ikke beder om bekræftelse! Det betyder at alt arbejde gjort siden du brugte Avanceret Redigér filer går tabt. Mere nøjagtigt, så bruger &cervisia; kommandolinjen

    echo y | cvs unedit filnavn

Hidtil har vi kun diskuteret tilfældet når begyndelse og slut på redigering bruges frivilligt af udviklerne. Desuden understøtter &CVS; en model som kræver anvendelse af disse kommandoer. Kommandoen som bruges for at skifte til denne model er `cvs watch on`, som ikke forklares yderligere, eftersom den oftest bruges af lagerets administrator. Det vigtige, ud fra udviklernes synvinkel, er dog at når projektet kræver redigeringer, så checkes arbejdskopier ud skrivebeskyttede. Det betyder at du ikke normalt kan redigere en fil (hvis du ikke anvender trick såsom `chmod`). Filen bliver kun skrivbar når du bruger Avanceret Redigér filer. Den bliver skrivebeskyttet igen, når du indsender den eller bruger Avanceret Slut redigering af filer.

&cervisia;s editorgrænseflade hjælper dig også med projekter som bruger overvågning på en anden måde. Hvis du kun starter en editor med en skrivebeskyttet fil, ved at dobbeltklikke på den eller ved at bruge Fil Redigér. så kan du ikke gemme dine ændringer senere. Dette har naturligvis en grund: Så snart du vil ændre en fil, skal du køre kommandoen `cvs edit` inden, så de som overvåger filen får en meddelelse om at du arbejder med den.

I et sådant tilfælde er det tilrådeligt at markere tilvalget Opsætning Redigér (cvs edit) automatisk om nødvendigt. Så snart du redigerer en fil ved at dobbeltklikke på den, så kører &cervisia; kommandoen `cvs edit` inden editoren virkelig startes. Derefter kan du redigere filen som almindeligt. Når du har afsluttet arbejdet, indsendes filerne. Derefter er de indsendte filer igen skrivebeskyttede.

### Låsning

Udviklingsmodellen som oftest bruges med &CVS; kaldes udcheckning uden reservation. Hver udvikler har sin egen arbejdsmappe, hvor filer kan redigeres vilkårligt. Hvis overvågningsfunktioner bruges, såsom `cvs edit`, kan flere udviklere arbejde med filer synkront. Ændringer som laves af en anden udvikler, flettes ind i den lokale arbejdsmappe når en opdatering gøres.

Andre revisionskontrolsystemer, såsom RCS og SourceSafe anvender en anden model. Når en udvikler vil redigere en fil, skal den låses. Kun én udvikler af gangen kan have en fil låst. Når redigeringen er færdig, slippes låsen fri. På den ene side kan konflikter aldrig indtræffe med denne model. På den anden side kan to udviklere aldrig arbejde med samme fil samtidigt, også selvom deres ændringer ikke påvirker hinanden. Dette kan være en flaskehals. Vi vil ikke diskutere organisatoriske fordele ved de to metoder. Vi nævner dog, at selvom &CVS; har en vis understøttelse for låsning, er det ikke måden at arbejde med &CVS; som er at foretrække. Du bør ikke bruge disse funktioner, hvis du ikke er sikker på at projektlederen tillader dem.

Med &cervisia; låser du filer på følgende måde: Markér de ønskede filer i hovedvinduet. Vælg derefter Avanceret Lås filer. Dette kører kommandoen

    cvs admin -l filnavn

Den modsatte virkning opnås ved at bruge Avanceret Lås op for filer. Dette kører kommandoen

    cvs admin -u filnavn

## Indstil &cervisia;

&cervisia; kan indstilles på forskellige måder efter dine behov og hvad du foretrækker. Visse tilvalg som du måske vil ændre regelmæssigt er direkte tilgængelige i menuen Opsætning. Andre er samlede i en fælles dialog som er tilgængelig via Tilvalg Indstil....

### Generelt

Brugernavn for redigering af ændringslog

Så snart du bruger menupunktet Fil Indsæt indgang i ændringsloggen..., så laves en ny indgang i ændringsloggen med nuværende dato og dit brugernavn. Normalt anses det for at være god skik at indsætte hele dit navn og e-postadresse i hver indgang i ændringsloggen. Her kan du indstille dette.

Søgesti til CVS

Her kan du sætte navnet (eller søgestien) for `cvs`-kommandolinjeklienten. Normalt bruges den kørbare fil som findes i din `$PATH` af &cervisia;.

Editor

Her kan du indstille hvilken editor som kaldes når en fil i hovedvinduet dobbeltklikkes. For at køre editoren, slås indgangen som indskrives her sammen med filnavnet og sendes til et skal. Derfor er det tilladt at bruge programmer såsom `gnuclient` her. Du kan også indtaste strengen `$EDITOR`, hvis miljøvariablen `$EDITOR` peger på en editor som selv åbner et X11-vindue.

### Diverse kommandoer

Antal sammenhængslinjer i sammenligningsdialogen

&cervisia; bruger flaget `-U` for `diff` for sammenligningsdialogen. Dette lader `diff` vise et begrænset antal linjer omkring hver forskel. Her kan du angive parameteren for flaget `-U`.

Yderligere valgmuligheder for cvs sammenligning

Her kan du tilføje yderligere flag til `diff`. Et almindeligt eksempel er `-b` som lader `diff` ignorere ændringer i mellemrum.

Tabulatorbredden i sammenligningsdialoger

I sammenligningsdialogen, ekspanderes tabulatortegn som findes i filen eller udskriften af `diff`-kommandoen til et fast antal mellemrum. Normalt erstattes hver tabulator med otte mellemrum, men du kan indstille en anden værdi.

Ydre sammenligningsgrænseflade

Når du bruger nogen af funktionerne som viser sammenligningsdialogen, såsom Vis Forskel mod lageret..., starter &cervisia; sin interne diff-grænseflade. Hvis du foretrækker en anden, såsom Kompare, TkDiff eller xxdiff, kan du indstille dette.

Start Fil Status automatisk

Når du markerer dette, køres kommandoen Fil Status så snart du åbner en arbejdsmappe. Eftersom denne kommando kan tage en vis tid, og desuden behøver en tilslutning til serveren for fjernlageret (som gør det uanvendeligt for nedkoblet brug), kan du angive dette separat for lokale og fjernlagre.

Tidsgrænse inden en fremgangsdialog vises

Næsten alle &CVS;-kommandoer startes i en arbejdsmappe som hører sammen med et fjernlager, og behøver en tilslutning til &CVS;-serveren. Dette påvirkes af forsinkelser i netværkstilslutningen eller høj belastning på serveren. Af denne grund, åbner &cervisia; en dialog som angiver at kommandoen stadigvæk kører, for kommandoer såsom Vis Forskel til lager... og lader dig afbryde det. Desuden bruges denne dialog til at vis fejlmeddelelser fra &CVS;. Eftersom dialoger kan være irriterende efter et stykke tid, vises den kun efter en tidsgrænse som normalt er 4 sekunder. Her kan du ændre denne værdi.

Standard-komprimeringsniveau

`cvs`-klienten komprimerer filer og programrettelser når de sendes via et netværk. Med kommandolinjeflaget `-z`, kan komprimeringsniveauet angives. Du kan indstille &cervisia; til at bruge dette, ved at indstille niveauet her. Værdien som indstilles her bruges kun som standardværdi. Desuden er der en indstilling for hvert lager i Lager Lagre....

### Udseende

Opdel hovedvinduet vandret

&cervisia;s hovedvindue opdeles normalt lodret i et vindue med filtræet, og et med udskrift. Alternativt kan du arrangere dem vandret.

Skrifttype for protokolvindue

Dette er skrifttypen som bruges i protokolvinduet. Dette er vinduet som viser udskriften fra `cvs`-klienten.

Skrifttype for kommentarvisning

Dette er skrifttypen som bruges i kommentarvisningen.

Skrifttype for sammenligningsvisning

Dette er skrifttypen som bruges i sammenligningsdialoger.

## Appendiks

### Filer som ignoreres

&cervisia; viser ikke alle filer som virkelig findes i hovedtræet. Dette gøres på samme måde som `cvs` selv, og hjælper med at undgå rod som forårsages af uinteressante ting såsom objektfiler. &cervisia; forsøger at imitere `cvs` egen opførsel så tæt som muligt, dvs. lister af filer som skal ignoreres hentes fra følgende kilder:

- En statisk liste med indgange, som omfatter ting som `*.o` og `core`. For detaljer, se &CVS;-dokumentationen.

- Filen ``$HOME`/.cvsignore`.

- Miljøvariablen `$CVSIGNORE`.

- Filen `.cvsignore` i de respektive mapper.

`cvs` selv slår desuden indgange op i ``$CVSROOT`/cvsignore`, men dette er en fil på serveren, og &cervisia; skal kunne starte i nedkoblet tilstand. Hvis du arbejder med en gruppe som foretrækker at bruge en liste at ignorere på serveren, er det formodentlig en god idé at tage et kig på hvilke mønstre som er på listen der og tilføje dem i filen `.cvsignore` i din hjemmemappe.

### Yderligere information og understøttelse

- &CVS; levereres med en komplet opsætning af dokumentation i form af info-sider, som er kendte som "Cederqvist"-dokumentet. Hvis den er rigtigt installeret, kan du bladre i den ved at skrive `info:/cvs` i hjælpecentralens stedlinje. Som et alternativ, kan du kun vælge Hjælp CVS-Info i &cervisia;. En elektronisk HTML-version af Cederqvist-dokumentet er tilgængeligt på internettet.

  Eftersom denne bog vedligeholdes sammen med &CVS;, er den normalt den bedst opdaterede referencedokumentation. Jeg anbefaler alligevel at overveje at bruge anden dokumentation for at lære sig hvordan man bruger &CVS;, særligt følgende.

- Karl Fogel har skrevet den udmærkede bog Open Source Development with CVS. Cirka halvdelen af denne bog handler om udviklingsprocessen for programmel med åben kildekode. Den anden halvdel er en teknisk dokumentation af &CVS;. Heldigt nok er den tekniske del af bogen gjort frit tilgængelig ifølge GPL, så du kan hente en HTML-version af den. En liste med errrata findes tilgængelig ovennævnte netsted.

- &CVS; spørgsmål diskuteres på en særlig e-postliste.

- Der er en Usenet-gruppe som hedder `comp.software.config-mgmt`, tilegnet konfigurationshåndtering i almindelighed. &CVS; er kun en marginel del af emnet for denne gruppe, men den kan alligevel være interessant eftersom den diskuterer fordele ved forskellige versionshåndteringssystemer i forhold til &CVS;.

- Sidst men ikke mindst, er der en (lidet brugt) &cervisia; e-postliste.

### Kommandoreference

#### Fil-menuen

Fil Åbn arbejdsmappe...

  Åbner en arbejdsmappe i hovedvinduet.

Fil Nylige arbejdsmapper...

  Åbner en af arbejdsmapperne som blev brugt for nylig.

Fil Indsæt indgang i ændringsloggen...

  Åbner editoren for ændringslog, forberedt så du kan tilføje en ny indgang med dagens dato.

&Ctrl; U Fil Opdatér

  Kører 'cvs update' på markerede filer og ændrer status og versionsnummer i listen ifølge resultatet.

F5 Fil Status

  Kør 'cvs -n update' på markerede filer og ændrer status og versionsnummer i listen ifølge resultatet.

Fil Redigér

  Åbner den markerede filen i editoren.

Fil Resolvér...

  Åbner en dialog for den markerede filen som lader dig resolvere konflikter fra en indfletning i den.

# Fil Indsend...

  Lader dig indsende de markerede filer.

+ Fil Tilføj til lager...

  Lader dig tilføje de markerede filer til lageret.

Fil Tilføj binær fil...

  Lader dig tilføje de markerede filerne til lageret som binære filer (`cvs add `-kb``).

- Fil Fjern fra lager...

  Lader dig fjerne de markerede filerne fra lageret.

Fil Vend tilbage

  Kasserer alle lokale ændringer som du har lavet for de markerede filer og går tilbager til versionen i lageret (flaget `-C` til `cvs update`).

&Ctrl; Q Fil Afslut

  Afslutter &cervisia;.

#### Vis-menuen

Escape Vis Stop

  Afbryder alle underprocesser som kører.

&Ctrl; L Vis Gennemse log...

  Viser versionstræet for den markerede fil.

&Ctrl; A Vis Kommentarer...

  Viser en kommentarvisning for den markerede fil, dvs. en visning hvor du kan se hvilken person som senest ændrede filen, for hver linje.

&Ctrl; D Vis Forskel mod lageret...

  Viser forskellene mellem den markerede fil i arbejdsmappen og versionen som du senest opdaterede (basisversionen).

Vis Seneste ændring...

  Viser forskellen mellem versionen for den markerede filen som du senest opdaterede (basisversionen) og en tidligere version.

Vis Historik...

  Viser &CVS;-historikken som den rapporteres af serveren.

Vis Ekspandér filtræ

  Åbner alle grene i filtræet så du kan se alle filer og alle mapper.

Vis Fold filtræ

  Lukker alle grene i filtræet.

#### Avanceret-menuen

Avanceret Mærke/gren...

  Tilføjer et mærke eller laver en gren for de markerede filer.

Avanceret Fjern mærke...

  Fjerner et givet mærke fra de markerede filer.

Avanceret Opdatér til mærke/dato...

  Ændrer de markerede filer til et givet mærke eller en given dato, og gør mærket eller datoen klæbrig.

Avanceret Opdatér til hovedversion...

  Ændrer de markerede filer til den respektive hovedversion.

Avanceret Flet...

  Fletter enten en given gren eller ændringerne mellem to forskellige mærker for de markerede filer.

Avanceret Tilføj overvågning...

  Tilføjer overvågning for et sæt begivenheder for de markerede filer.

Avanceret Fjern overvågning...

  Fjerner overvågning for et sæt begivenheder fra de markerede filer.

Avanceret Vis overvågning

  Giver en liste af overvågere af de markerede filer.

Avanceret Redigér filer

  Kør `cvs edit` for de markerede filer.

Avanceret Slut med at redigere filer

  Kører `cvs unedit` for de markerede filer.

Avanceret Vis redigering

  Kør `cvs editors` for de markerede filer.

Avanceret Lås filer

  Låser de markerede filer.

Avanceret Lås filer op

  Låser de markerede filer op.

Avanceret Lav rettelse mod lager

  Laver en rettelse ud fra ændringerne i din arbejdsmappe.

#### Lager-menuen

Lager Check ud...

  Åbner en dialog som lader dig checke et modul ud fra lageret.

Lager Importér...

  Åbner en dialog som lader dig importere en pakke til lageret.

Lager Lagre...

  Indstiller en liste med lagre som du ofte bruger, og hvordan der er adgang til dem.

#### Opsætningsmenuen

Opsætning Indstil genveje...

  Åbner en dialog til at indstille tastebindinger.

Opsætning Indstil Cervisia...

  Åbner en dialog til at indstille &cervisia;.

Opsætning Lav mapper ved opdatering

  Afgør om opdateringer laver mapper i arbejdsmappen som ikke tidligere fandtes der (flaget `-d` for `cvs update`).

Opsætning Fjern tomme mapper ved opdatering

  Afgør om opdateringer fjerner tomme mapper i arbejdsmappen. (flaget `-P` for `cvs update`).

Opsætning Opdatér rekursivt

  Afgør om opdateringer er rekursive (flaget `-r` for `cvs update`).

Opsætning Indsend og fjern rekursivt

  Afgør om indsendelser og fjernelser er rekursive (flaget `-r` for `cvs add` og `cvs remove`).

Opsætning Redigér (cvs edit) automatisk om nødvendigt

  Afgør om `cvs edit` køres automatisk så snart du redigerer en fil.

#### Hjælpemenuen

F1 Hjælp Cervisia-håndbog

  Aktiverer KDE's hjælpesystem med starten af &cervisia;s hjælpesider (dette dokument).

Hjælp Rapportér fejl...

  Åbner en dialog til fejlrapportering.

Hjælp Om Cervisia

  Dette viser information om version og forfattere.

Hjælp Om KDE

  Dette viser KDE's version og anden basal information.

Hjælp CVS-manual

  Åbner &CVS;-infosider i KDE's hjælpesystem.

## Medvirkende og licens

&underFDL;