<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "&cervisia;">
  <!ENTITY package "kdesdk">
  <!ENTITY ssh "<command
>ssh</command
>">
  <!ENTITY rsh "<command
>rsh</command
>">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Danish "INCLUDE"
> <!-- Change language only here -->
  <!ENTITY CVS "<application
>CVS</application
>">
]>

<book lang="&language;">

<bookinfo>
<title
>&cervisia;-håndbogen</title>
<authorgroup>
<author
><firstname
>Bernd</firstname
><surname
>Gehrmann</surname
> <affiliation
><address
><email
>bernd@mail.berlios.de</email
></address
></affiliation>
</author
> 

&erik.kjaer.pedersen.role; 

</authorgroup>

<copyright>
<year
>1999</year>
<year
>2000</year>
<year
>2001</year>
<year
>2002</year>
<holder
>Bernd Gehrmann</holder>
</copyright>
<legalnotice>
 
<para
>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.</para>

<para
>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.</para>
</legalnotice>

<legalnotice
>&FDLNotice;</legalnotice>

<date
>2002-06-30</date>
<releaseinfo
>2.00.00</releaseinfo>

<abstract>
<para
>&cervisia; sørger for et grafisk billede af &CVS;.</para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdesdk</keyword>
<keyword
>Cervisia</keyword>
<keyword
>CVS</keyword>
<keyword
>versionskontrol</keyword>
<keyword
>revisionskontrol</keyword>
</keywordset>

</bookinfo>
   
<chapter id="getting-started">
<title
>Kom i gang</title>

<sect1 id="accessing-repository">
<title
>Adgang til lageret</title>
      
<para
>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. </para>

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

<variablelist>
<varlistentry>
<term
>Lokal</term>
<listitem>
<para
>Lageret hedder noget i retning af  <filename class="directory"
>/home/cvs/</filename
> 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 <acronym
>NFS</acronym
>, men dette er en uvigtig detalje. Hvis du ofte bruger et vist lokalt lager, vil du fortælle &cervisia; om det; </para>

<procedure>
<title
>Tilføj et lokalt lager</title>
<step
><para
>Åbn lagerdialogen ved at vælge <menuchoice
><guimenu
>Lager</guimenu
> <guimenuitem
>Lagre...</guimenuitem
></menuchoice
>.</para
></step>

<step
><para
>Tryk på knappen <guibutton
>Tilføj...</guibutton
></para
></step>

<step
><para
>Indtast information om lageret i dialogen som vises.</para
></step>

<step
><para
>Bekræft ved at trykke på knappen <guibutton
>O.k.</guibutton
>.</para
></step>

</procedure>

<para
>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.</para>

</listitem>
</varlistentry>

<varlistentry>
<term
>rsh</term>
<listitem>
<para
>Lagerets navn er noget i retning af <literal
>:ext:bernd@cvs.cervisia.sourceforge.net:/cvsroot/cervisia</literal
>.</para>

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

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

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

<para
>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 &rsh;, kan dette opnås ved for eksempel at oprette filen <filename
><envar
>$HOME</envar
>/.rhosts</filename
> med en liste med pålidelige værtsmaskiner (se manualsiden for &rsh;). </para>

<para
>Med &ssh;, kan det opnås ved at kopiere din åbne nøgle <filename
><envar
>$HOME</envar
>/.ssh/identity.pub</filename
> 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;/<acronym
>SSH</acronym
> på SourceForge). Hvis du er usikker på dissen ting, så spørg systemadministratoren. </para>

</listitem>
</varlistentry>

<varlistentry>
<term
>pserver</term>
<listitem>

<para
>Lager-navnet ser ud sådan her<filename
>:pserver:gehrmab@cvs.kde.org:/home/kde</filename
> </para>

<para
>Denne metode giver adgang til serveren via en speciel protokol med en relativt svag godkendelseskontrol (<literal
>pserver</literal
> 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 </para>

<screen
><prompt
>%</prompt
><userinput
><command
>cvs</command
> <option
>-d</option
> <parameter
>:pserver:persmed@cvs.kde.org:/home/kde login</parameter
></userinput
></screen>

<para
>(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 <filename
><envar
>$HOME</envar
>/.cvspass</filename
>. 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 <filename
><envar
>$HOME</envar
>/.cvspass</filename
> hemmelig og ulæselig for andre. </para>

</listitem>
</varlistentry>
</variablelist>

</sect1>


<sect1 id="importing">
<title
>Importér et modul til lageret</title>

<para
>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. </para>

<figure id="screenshot-import" float="1">
<title
>Et skærmaftryk af &cervisia;s importdialog</title>
<mediaobject>
<imageobject
><imagedata format="PNG" fileref="import.png"/></imageobject>
<textobject
><phrase
>Et skærmaftryk af &cervisia;s importdialog</phrase
></textobject>
</mediaobject>
</figure>

<para
>I <xref linkend="screenshot-import"/> kan du se dialogen som hjælper dig med at <emphasis
>importere</emphasis
> et projekt som et modul. Efter du har udfyldt denne formular og bekræftet med <guibutton
>O.k.</guibutton
>, bruges følgende &CVS;-kommando: </para>

<screen
><command
>cvs</command
> -d <co id="co-repository"
></co
><replaceable
>lager</replaceable
> import -m "" <co id="co-module"
></co
><replaceable
>modul</replaceable
> <co id="co-vendortag"
></co
><replaceable
>leverandørmærke</replaceable
> <co id="co-releasetag"
></co
><replaceable
>versionsmærke</replaceable
></screen>

<calloutlist>

<callout arearefs="co-repository">
<para
>Navnet på &CVS;-lageret, også kendt som $<envar
>CVSROOT</envar
>. Du skal have skriverettigheder til lageret, og det skal være rigtigt initieret. Hvis lageret ikke findes endnu, initieres det med kommandoen <userinput
><command
>cvs</command
> <option
>-d</option
> <replaceable
>lager</replaceable
> <command
>init</command
></userinput
>. </para>

<para
>Hvis lageret er på en anden maskine, skal du sørge for at godkendelseskontrollen virker (se <xref linkend="accessing-repository"/>). </para>
</callout>

<callout arearefs="co-module">
<para
>Navnet på modulet hvor projektet bliver opbevaret. Efter importen, kan projektet checkes ud under dette navn. Se <xref linkend="checkingout"/> for mere information. Dette er også navnet på den tilsvarende mappe i lageret. </para>
</callout>

<callout arearefs="co-vendortag">
<para
>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. </para>
</callout>

<callout arearefs="co-releasetag">
<para
>Dette mærke bruges også historisk til at importere forskellige versioner af programmel fra tredje part. Hvis du ikke gør dette, brug ordet <literal
>start</literal
> eller strengen <literal
>PROJEKT_1_0</literal
>, hvor <literal
>PROJEKT</literal
> er navnet på dit projekt og <literal
>1.0</literal
> er versionsnummeret for den importerede version. </para>
</callout>

</calloutlist>

<formalpara>
<title
>Arbejdsmappe</title>
<para
>Dette er topniveaumappen for projektet som du vil importere. Importen begynder i denne mappe og går nedad rekursivt. </para>
</formalpara>

<formalpara>
<title
>Ignorér filer</title>
<para
>Hvis du udfylder dette felt, gives det yderligere flag <option
>-I <replaceable
>filnavn</replaceable
></option
> til kommandoen <command
>cvs import</command
>. 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;, &eg; filer med navnet <filename
>core</filename
>. Hvis dette er tilfældet, så skriv blot tegnet <literal
>!</literal
> i feltet. Dette sætter &CVS;'s måde at ignorere filer ud af kraft, se <xref linkend="ignoredfiles"/>. </para>
</formalpara>

<formalpara>
<title
>Importér som binære filer</title>
<para
>Hvis du markerer denne boks, importeres alle filer som binære filer, dvs. flaget <option
>-kb</option
> angives for <command
>cvs import</command
>. </para>
</formalpara>

</sect1>


<sect1 id="checkingout">
<title
>Check et modul ud fra lageret</title>
<para
>Inden du arbejder med et projekt som har revisionskontrol, skal du checke en <emphasis
>arbejdskopi</emphasis
> ud. </para>

<figure id="screenshot-checkout" float="1">
<title
>Et skærmaftryk af &cervisia;s udcheckningsdialog</title>
<mediaobject>
<imageobject
><imagedata format="PNG" fileref="checkout.png"/></imageobject>
<textobject
><phrase
>Et skærmaftryk af &cervisia;s udcheckningsdialog</phrase
></textobject>
</mediaobject>
</figure>

<formalpara>
<title
>Lager</title>
<para
>Navnet på &CVS;-lageret, også kendt som <filename
><envar
>$CVSROOT</envar
></filename
>. Hvis lageret er på en anden maskine, skal du sørge for at godkendelseskontrollen virker, se <xref linkend="accessing-repository"/>. </para>
</formalpara>

<formalpara>
<title
>Modul</title>
<para
>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 <filename
><envar
>$CVSROOT</envar
>/modules</filename
>, kan du hente en liste over tilgængelige moduler ved at klikke på knappen <guibutton
>Hent liste</guibutton
>. </para>
</formalpara>

<formalpara>
<title
>Arbejdsmappe</title>
<para
>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. </para>
</formalpara>

</sect1>


<sect1 id="mainscreen">
<title
>Hovedskærmen</title>
<para
>Når du starter &cervisia;, og åbner en arbejdskopi ved at vælge <menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Åbn arbejdsmappe...</guimenuitem
></menuchoice
> ser du en hierarkisk visning af den nuværende mappe. Afhængig af indstillingerne i filen <filename
>.cvsignore</filename
>, vises filer som du normalt ikke vil have i lageret ikke, &eg; 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 <guimenuitem
>Opdatér</guimenuitem
> eller <guimenuitem
>Status</guimenuitem
> i <guimenu
>Fil</guimenu
>-menuen. På denne måde har du en minimal funktionalitet tilgængelig også selvom du ikke har en permanent tilslutning til &CVS;-serveren. </para>

<figure id="screenshot-mainview" float="1">
<title
>Et skærmaftryk af &cervisia;s hovedvindue</title>
<mediaobject>
<imageobject
><imagedata format="PNG" fileref="mainview.png"/></imageobject>
<textobject
><phrase
>Et skærmaftryk af &cervisia;s hovedvindue</phrase
></textobject>
</mediaobject>
</figure>

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

<para>
<screen
><command
>cvs update -n <replaceable
>filnavn</replaceable
></command
></screen>
</para>

<para
>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 <guimenu
>Opsætning</guimenu
>. Afhængig af hver fils status, ser du nu noget i søjlen <guilabel
>Status</guilabel
>. </para>

<itemizedlist>

<listitem
><para
>Ændret lokalt - Dette betyder at du har ændret filen sammenlignet med versionen i lageret. </para
></listitem>

<listitem
><para
>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. </para
></listitem>

<listitem
><para
>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). </para
></listitem>

<listitem
><para
>Behøver opdatering - Dette viser om en nyere version af filen findes i lageret, &eg; på grund af at nogen har indsendt en ændring. Normalt vil du opdatere filen så du har en opdateret version i din mappe. </para
></listitem>

<listitem
><para
>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. </para
></listitem>

<listitem
><para
>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". </para
></listitem>
       
<listitem
><para
>Opdateret - Angiver at filen er identisk med versionen i lageret. </para
></listitem>

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

<listitem
><para
>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 <filename
>.cvsignore</filename
>. </para
></listitem>

</itemizedlist>
      
<para
>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 <guimenuitem
>Opdatér</guimenuitem
> i <guimenu
>Fil</guimenu
>-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: </para>
      
<itemizedlist>

<listitem
><para
>Opdateret - Viser om filen blev opdateret fra lageret. </para
></listitem>

<listitem
><para
>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". </para
></listitem>

</itemizedlist>
      
<para
>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 <guilabel
>Status</guilabel
>. 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 <guilabel
>Filnavn</guilabel
>. </para>

</sect1>
</chapter>

   
<chapter id="workingwithfiles">
<title
>Arbejde med filer</title>

<para
>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 <guimenu
>Opsætning</guimenu
>. Hvis <menuchoice
><guimenu
>Opsætning</guimenu
><guimenuitem
>Indsend og fjern rekursivt</guimenuitem
></menuchoice
> for eksempel er markeret og du vælger <menuchoice
><guimenu
>Fil</guimenu
> <guimenuitem
>Indsend...</guimenuitem
> </menuchoice
> mens en mappe er markeret, indsendes alle filer i træet under denne mappe. Ellers påvirkes kun de almindelige filer i mappen selv. </para>

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

<sect1 id="addingfiles">
<title
>Tilføj filer</title>

<para
>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 <menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Tilføj til lager</guimenuitem
></menuchoice
>. &cervisia; kører kommandoen</para>

<para>
<screen
><command
>cvs add <replaceable
>filnavn</replaceable
></command
></screen>
</para>

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

<para
>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 (&eg; i e-post ) at alle disse ændringer er en del af en helhed. </para>

<para
>&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 (&eg; for strengen <literal
>&dollar;Revision: 1.6 &dollar;</literal
>) 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 </para>

<para>
<screen
><command
>cvs add -kb <replaceable
>filnavn</replaceable
></command
></screen>
</para>

<para
>I &cervisia;, kan dette opnås ved at vælge <menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Tilføj binærfil...</guimenuitem
></menuchoice
> </para>

</sect1>


<sect1 id="removingfiles">
<title
>Fjern filer</title>

<para
>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 <menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Fjern fra lager</guimenuitem
></menuchoice
>, hvilket kører kommandoen </para>
<para>
<screen
><command
>cvs remove -f <replaceable
>filnavn</replaceable
></command
></screen>
</para>

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

<note
><para
>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. </para
></note>

</sect1>
   
   
<sect1 id="addingremovingdirs">
<title
>Tilføj og fjern mapper</title>

<para
>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). </para>

<para
>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 <option
>-P</option
> i kommandoerne <command
>cvs update</command
> og <command
>cvs checkout</command
>. Denne valgmulighed kan angives i menuen <menuchoice
><guimenu
>Opsætning</guimenu
> <guimenuitem
>Fjern tomme mapper ved opdatering</guimenuitem
></menuchoice
>. </para>

<para
>En mappe kan tilføjes til lageret med kommandoen </para>

<para>
<screen
><command
>cvs add <replaceable
>mappenavn</replaceable
></command
></screen>
</para>

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

</sect1>


<sect1 id="commitingfiles">
<title
>Indsend filer</title>

<para
>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. </para>

<para
>For at indsende nogle filer, markeres de i &cervisia;s hovedvindue, og <menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Indsend...</guimenuitem
></menuchoice
> vælges. </para>

<figure id="screenshot-commit" float="1">
<title
>Et skærmaftryk af &cervisia;s indsendingdialog</title>
<mediaobject>
<imageobject
><imagedata format="PNG" fileref="commit.png"/></imageobject>
</mediaobject>
</figure>

<para
>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  </para>

<para>
<screen
><command
>cvs commit -m <replaceable
>meddelelse</replaceable
> <replaceable
>filnavn</replaceable
></command
></screen>
</para>

<para
>&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. </para>

<note
><para
>En almindelig fejl som du kan støde på når du indsender er "<errorname
>Up-to-date check failed</errorname
>" (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. </para
></note>

<note>
<para
>En anden almindelig fejl giver fejlmeddelelsen "<errorname
>Sticky tag 'X' for file 'X' is not a branch</errorname
>" (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 </para>
<para>
<screen
><prompt
>%</prompt
><userinput
>cvs update -r X</userinput
></screen>
</para>
<para
>(som &eg; bruges af menupunktet <menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Opdatér til mærke/dato...</guimenuitem
></menuchoice
>). 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. </para>
</note>

<para
>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 <menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Indsæt indgang i ændringsloggen...</guimenuitem
> </menuchoice
>. Hvis en fil som hedder <filename
>ChangeLog</filename
> (æ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 <xref linkend="customize-general"/>). Når du afslutter dialogen ved at klikke på <guibutton
>O.k.</guibutton
>, kommer næste indsendingsdialog til at få samme logmeddelelse som meddelelsen du skrev i ændringsloggen. </para>

</sect1>


<sect1 id="resolvingconflicts">
<title
>Løs op for konflikter</title>

<para
>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. </para>

<para
>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. </para>

<para
>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 <menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Resolvér...</guimenuitem
></menuchoice
>. </para>

<figure id="screenshot-resolve" float="1">
<title
>Et skærmaftryk af &cervisia;s dialog for at løse op for konflikter</title>
<mediaobject>
<imageobject
><imagedata format="PNG" fileref="resolve.png"/></imageobject>
<textobject
><phrase
>Et skærmaftryk af &cervisia;s dialog for at løse op for konflikter</phrase
></textobject>
</mediaobject>
</figure>

<para
>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 <guibutton
>Gem</guibutton
>. </para>

<para
>Du kan skifte mellem forskellige afsnit ved at trykke på <guibutton
>&lt;&lt;</guibutton
> og <guibutton
>&gt;&gt;</guibutton
>. Længere ned i midten af dialogen ser du hvilket afsnit der er er markeret for øjeblikket. For eksempel så betyder <literal
>2 ud af 8</literal
> 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å <guibutton
>A</guibutton
>, vælger du versionen som du redigeret. Ved at trykke på <guibutton
>B</guibutton
>, overtager du versionen fra lageret. </para>

</sect1>

</chapter>


<chapter id="obtaininginformation">
<title
>Skaf information om filer</title>

<sect1 id="browsinglogs">
<title
>Gennemsyn af CVS-logger</title>

<para
>Når du markerer en fil i hovedvinduet og vælger <guimenuitem
>Gennemse log</guimenuitem
> i menuen <guimenu
>Vis</guimenu
>, udføres en  </para>

<para>
<screen
><command
>cvs log <replaceable
>filnavn</replaceable
></command
></screen>
</para>

<para
>kommando og en dialog vises som angiver versionshistorikken for den markerede fil. </para>

<figure float="1">
<title
>Et skærmaftryk af &cervisia;s dialog til at gennemse logger</title>
<mediaobject>
<imageobject
><imagedata format="PNG" fileref="logtree.png"/></imageobject>
<textobject
><phrase
>Et skærmaftryk af &cervisia;s dialog til at gennemse logger</phrase
></textobject>
</mediaobject>
</figure>

<para
>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. </para>

<para
>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 <command
>cvs log</command
>. 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 <keycombo
><keycap
>Ctrl</keycap
><keycap
>A</keycap
></keycombo
> og <keycombo
><keycap
>Ctrl</keycap
><keycap
>B</keycap
></keycombo
>. </para>

<para
>Hvis du trykker på knappen <guibutton
>Kommentér</guibutton
>, 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. </para>

<para
>Hvis du trykker på knappen <guibutton
>Sammenlign</guibutton
>, så køres kommandoen <command
>cvs diff</command
> 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. </para>

</sect1>

   
<sect1 id="browsinghistory">
<title
>Gennemse historikken</title>

<para
>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 <guimenuitem
>Historik</guimenuitem
> i menuen <guimenu
>Vis</guimenu
>, så kører &cervisia; kommandoen </para>

<para>
<screen
><command
>cvs history -e -a</command
></screen>
</para>

<note
><para
>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! </para
></note>

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

<itemizedlist>

<listitem
><para
>Udchecket - Brugeren som vises i søjlen Forfatter har checket en modul ud </para
></listitem>

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

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

<listitem
><para
>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. </para
></listitem>

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

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

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

<listitem
><para
>Indsend, ændret - En bruger indsendte en ændret fil. </para
></listitem>

<listitem
><para
>Indsend, tilføjet - En bruger tilføjede en fil og indsendte den. </para
></listitem>

<listitem
><para
>Indsend, fjern - En bruger fjernede en fil og indsendte ændringen. </para
></listitem>

</itemizedlist>

<figure id="screenshot-history" float="1">
<title
>Et skærmaftryk af &cervisia;s historikdialog</title>
<mediaobject>
<imageobject
><imagedata format="PNG" fileref="history.png"/></imageobject>
<textobject
><phrase
>Et skærmaftryk af &cervisia;s historikdialog</phrase
></textobject>
</mediaobject>
</figure>

<para
>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: </para>

<itemizedlist>
<listitem
><para
>Vis indsendingsbegivenheder - viser indsendinger</para
></listitem>
<listitem
><para
>Vis udcheckningsbegivenheder - viser udcheckninger</para
></listitem>
<listitem
><para
>Vis mærkebegivenheder - viser mærkninger</para
></listitem>
<listitem
><para
>Vis øvrige begivenheder - viser begivenheder som ikke indgår i ovenstående</para
></listitem>
<listitem
><para
>Kun bruger - viser kun begivenheder som er forårsaget af en bestemt bruger</para
></listitem>
<listitem
><para
>Kun filnavne som matcher - filtrerer filnavne med et regulært udtryk</para
></listitem>
<listitem
><para
>Kun mapper som matcher - filtrerer mappenavne med et regulært udtryk</para
></listitem>
</itemizedlist>

<para
>Særlige tegn som genkendes af matchning med regulære udtryk er: </para>

<itemizedlist>

<listitem
><para
><literal
>x*</literal
> matcher et vilkårligt antal forekomster af tegnet <literal
>x</literal
>. </para
></listitem>

<listitem
><para
><literal
>x+</literal
> matcher en eller flere forekomster af tegnet <literal
>x</literal
>. </para
></listitem>

<listitem
><para
><literal
>x?</literal
> matcher nul eller en forekomst af tegnet <literal
>x</literal
>. </para
></listitem>

<listitem
><para
><literal
>^</literal
> matcher begyndelsen af strengen. </para
></listitem>

<listitem
><para
><literal
>$</literal
> matcher slutningen af strengen. </para
></listitem>

<listitem
><para
><literal
>[a-cx-z]</literal
> matcher et sæt tegn, &eg; her sættet som består af a,b,c,x,y,z. </para
></listitem>

</itemizedlist>

</sect1>


<sect1 id="diff">
<title
>Overvågning af forskelle mellem versioner</title>

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

<itemizedlist>

<listitem
><para
>I hovedvinduet kan du vælge <menuchoice
><guimenu
>Vis</guimenu
><guimenuitem
>Forskel mod lageret...</guimenuitem
></menuchoice
>. Dette baseres på kommandoen <command
>cvs diff</command
> 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. </para
></listitem>

<listitem
><para
>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 <menuchoice
><guimenu
>Vis</guimenu
><guimenuitem
>Forskel mod lageret...</guimenuitem
></menuchoice
> i hovedvinduet, med den respektive fil. </para
></listitem>

<listitem
><para
>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 <xref linkend="browsinglogs"/>). </para
></listitem>

</itemizedlist>

<para
>Som du måske forventede, så dumper &cervisia; ikke blot resultatet fra kommandoen <command
>diff</command
> ud på terminalen, men giver en grafisk visning som set i <xref linkend="screenshot-log"/>. </para>

<figure id="screenshot-log" float="1">
<title
>Et skærmaftryk af &cervisia;s sammenligningsdialog</title>
<mediaobject>
<imageobject
><imagedata format="PNG" fileref="diff.png"/></imageobject>
<textobject
><phrase
>Et skærmaftryk af &cervisia;s sammenligningsdialog</phrase
></textobject>
</mediaobject>
</figure>

<para
>Teksten i dialogen er en forbedret variant af teksten som gives af kommandoen diff med flaget <option
>-u</option
>. 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 <literal
>+++++</literal
> til venstre. For andre linjer kan du se løbende linjenumre i venstre søjle. </para>

<para
>I den anden søjle i højre vindue kan du se hvilken slags ændring som er gjort. Mulige slags er <literal
>Tilføjet</literal
>, <literal
>Slettet</literal
> og <literal
>Ændret</literal
>. 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. </para>

<para
>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 <guibutton
>Synkronisér rullebjælker</guibutton
>. </para>

<para
>For information om hvordan man indstiller sammenligningsdialogen, se <xref linkend="customize-commands"/>. </para>

</sect1>


<sect1 id="annotate">
<title
>Overvåg en annoteret visning af en fil</title>

<para
>Med kommandoen <command
>cvs annotate</command
>, 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. </para>

<para
>&cervisia; giver dig adgang til denne funktion, men udvider informationen yderligere interaktivt. Du får en kommentarvisning ved at vælge <menuchoice
><guimenu
>Vis</guimenu
><guimenuitem
>Kommentér...</guimenuitem
></menuchoice
>. En anden måde er at trykke på knappen <guilabel
>Kommentér</guilabel
> i dialogen CVS-log. På <xref linkend="screenshot-annotate"/> kan du se et skærmaftryk af dialogen. </para>

<figure id="screenshot-annotate" float="1">
<title
>Et skærmaftryk af &cervisia;s kommentardialog</title>
<mediaobject>
<imageobject
><imagedata format="PNG" fileref="annotate.png"/></imageobject>
<textobject
><phrase
>Et skærmaftryk af &cervisia;s dialog for at opdatere til et mærke</phrase
></textobject>
</mediaobject>
</figure>

<para
>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. </para>

<para
>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 <emphasis
>hvorfor</emphasis
> 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. </para>

</sect1>

</chapter>


<chapter id="advancedusage">
<title
>Avanceret brug</title>

<sect1 id="taggingbranching">
<title
>Mærking og grene</title>

<para
>Her beskriver vi kun de tekniske aspekter af mærkning og grene. Hvis du kun er en <emphasis
>bruger</emphasis
>, 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. </para>

<para
>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 <literal
>CERVISIA_1_0</literal
>. &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. </para>

<para
>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 <menuchoice
><guimenu
>Avanceret</guimenu
> <guimenuitem
>Mærke/gren</guimenuitem
></menuchoice
> vælges. Skriv nu mærkets navn, tryk på returtasten, og du er klar! </para>

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

<para
>Der er flere måder at opdatere til en vis tilstand i projektet: </para>

<itemizedlist>

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

<para>
<screen
><command
>cvs update -r <replaceable
>mærke</replaceable
></command
></screen>
</para
></listitem>

<listitem
><para
>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 <menuchoice
><guimenu
>Avanceret</guimenu
> <guimenuitem
>Opdatér til mærke/dato</guimenuitem
></menuchoice
> og markere afkrydsningsboksen <guibutton
>Opdatér til dato</guibutton
>. I feltet nedenfor kan du indtaste en stor mængde forskellige datoformater. Et muligt format er <literal
>åååå-mm-dd</literal
> hvor <literal
>åååå</literal
> er året, <literal
>mm</literal
> er måneden (numerisk) og <literal
>dd</literal
> er dagen. En anden mulighed er nogle engelske ord, såsom "<literal
>yesterday</literal
>" (i går) eller "<literal
>2 weeks ago</literal
>" (for to uger siden). Når du vælger dette, bruger &cervisia; kommandoen </para>

<para>
<screen
><command
>cvs update -D <replaceable
>dato</replaceable
></command
></screen>
</para
></listitem>

<listitem
><para
>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 <literal
>HEAD</literal
> (hovedversionen), bruges menupunktet <menuchoice
><guimenu
>Avanceret</guimenu
> <guimenuitem
>Opdatér til hovedversion</guimenuitem
></menuchoice
>. Dette giver anledning til kommandoen: </para>
<para>
<screen
><command
>cvs update <option
>-A</option
></command
></screen>
</para
></listitem>

</itemizedlist>

<figure id="screenshot-updatetag" float="1">
<title
>Et skærmaftryk af &cervisia;s dialog for at opdatere til et mærke</title>
<mediaobject>
<imageobject
><imagedata format="PNG" fileref="updatetag.png"/></imageobject>
<textobject
><phrase
>Et skærmaftryk af &cervisia;s dialog for at opdatere til et mærke</phrase
></textobject>
</mediaobject>
</figure>

<para
>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 <menuchoice
><guimenu
>Avanceret</guimenu
> <guimenuitem
>Flet...</guimenuitem
></menuchoice
>. Dialogen som vises har to valgmuligheder: </para>

<para
>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 <guibutton
>Indflet fra gren</guibutton
> og udfyld grenen som du vil indflette fra. &cervisia; kører så kommandoen </para>

<para>
<screen
><command
>cvs update <option
>-j</option
> <replaceable
>grenmærke</replaceable
></command
></screen>
</para>

<para
>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 <guibutton
>Indflet ændringer</guibutton
> og de to relevante mærker indskrives (i rigtig rækkefølge). Dette giver anledning til kommandoen </para>

<para>
<screen
><command
>cvs update <option
>-j</option
> <replaceable
>grenmærke1</replaceable
> <option
>-j</option
> <replaceable
>grenmærke2</replaceable
></command
></screen>
</para>

</sect1>


<sect1 id="watches">
<title
>Brug overvågning</title>

<para
>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 <filename
><envar
>$CVSROOT</envar
>/notify</filename
> 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. </para>

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

<para
>For at tilføje overvågning af en eller flere filer, bruges <menuchoice
><guimenu
>Avanceret</guimenu
> <guimenuitem
>Tilføj overvågning...</guimenuitem
></menuchoice
>. 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 <guibutton
>Kun</guibutton
> og <guibutton
>Indsendelse</guibutton
>. Hvis du vil vise om alle begivenheder som gælder de markerede filer, markeres boksen <guibutton
>Alle</guibutton
>. Kommandolinjen som bruges når du bekræfter dialogen er </para>

<para>
<screen
><command
>cvs watch add -a commit <replaceable
>filnavn</replaceable
></command
></screen>
</para>

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

<para
>Hvis du ikke længere er interesseret i visse filer, kan du fjerne overvågningen af dem. For at opnå dette, bruges <menuchoice
><guimenu
>Avanceret</guimenu
> <guimenuitem
>Fjern overvågning...</guimenuitem
></menuchoice
>. 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 </para>

<para>
<screen
><command
>cvs watch remove <replaceable
>filnavn</replaceable
></command
></screen>
</para>

<para
>muligvis med flaget <option
>-a</option
> for de valgte begivenheder. </para>

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

<para>
<screen
><command
>cvs watchers <replaceable
>filnavn</replaceable
></command
></screen>
</para>

<para
>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. </para>

<para
>For visse udviklingsgrupper, er dette ikke samarbejdsmodellen som foretrækkes. De vil have at vide om nogen arbejder med en fil <emphasis
>så snart</emphasis
> 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  <menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Redigér filer</guimenuitem
></menuchoice
> vælges. Dette kører kommandoen </para>

<para>
<screen
><command
>cvs edit <replaceable
>filnavn</replaceable
></command
></screen>
</para>

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

<para>
<screen
><command
>cvs editors <replaceable
>filnavn</replaceable
></command
></screen>
</para>

<para
>En redigeringssession afsluttes automatisk når du indsender filen som er ændret. I det øjeblik sendes en <literal
>unedit</literal
>-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 <menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Slut redigering af filer</guimenuitem
></menuchoice
>. Bemærk at &cervisia; ikke beder om bekræftelse! Det betyder at alt arbejde gjort siden du brugte <menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Redigér filer</guimenuitem
></menuchoice
> går tabt. Mere nøjagtigt, så bruger &cervisia; kommandolinjen </para>

<para>
<screen
><command
>echo y | cvs unedit <replaceable
>filnavn</replaceable
></command
></screen>
</para>

<para
>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 <emphasis
>kræver</emphasis
> anvendelse af disse kommandoer. Kommandoen som bruges for at skifte til denne model er <command
>cvs watch on</command
>, 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 <emphasis
>skrivebeskyttede</emphasis
>. Det betyder at du ikke normalt kan redigere en fil (hvis du ikke anvender trick såsom <command
>chmod</command
>). Filen bliver kun skrivbar når du bruger <menuchoice
><guimenu
>Avanceret</guimenu
> <guimenuitem
>Redigér filer</guimenuitem
></menuchoice
>. Den bliver skrivebeskyttet igen, når du indsender den eller bruger <menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Slut redigering af filer</guimenuitem
></menuchoice
>. </para>

<para
>&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 <menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Redigér</guimenuitem
></menuchoice
>. 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 <command
>cvs edit</command
> inden, så de som overvåger filen får en meddelelse om at du arbejder med den. </para>

<para
>I et sådant tilfælde er det tilrådeligt at markere tilvalget <menuchoice
><guimenu
>Opsætning</guimenu
> <guimenuitem
>Redigér (cvs edit) automatisk om nødvendigt</guimenuitem
></menuchoice
>. Så snart du redigerer en fil ved at dobbeltklikke på den, så kører &cervisia; kommandoen <command
>cvs edit</command
> 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. </para>

</sect1>


<sect1 id="locking">
<title
>Låsning</title>

<para
>Udviklingsmodellen som oftest bruges med &CVS; kaldes <emphasis
>udcheckning uden reservation</emphasis
>. Hver udvikler har sin egen arbejdsmappe, hvor filer kan redigeres vilkårligt. Hvis overvågningsfunktioner bruges, såsom <command
>cvs edit</command
>, 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. </para>

<para
>Andre revisionskontrolsystemer, såsom <acronym
>RCS</acronym
> og <application
>SourceSafe</application
> anvender en anden model. Når en udvikler vil redigere en fil, skal den <emphasis
>låses</emphasis
>. 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. </para>

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

<para>
<screen
><command
>cvs admin -l <replaceable
>filnavn</replaceable
></command
></screen>
</para>

<para
>Den modsatte virkning opnås ved at bruge <menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Lås op for filer</guimenuitem
></menuchoice
>. Dette kører kommandoen</para>

<para>
<screen
><command
>cvs admin -u <replaceable
>filnavn</replaceable
></command
></screen>
</para>

</sect1>

</chapter>


<chapter id="customization">
<title
>Indstil &cervisia;</title>

<para
>&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 <guimenu
>Opsætning</guimenu
>. Andre er samlede i en fælles dialog som er tilgængelig via <menuchoice
><guimenu
>Tilvalg</guimenu
> <guimenuitem
>Indstil...</guimenuitem
></menuchoice
>. </para>


<sect1 id="customize-general">
<title
>Generelt</title>

<formalpara id="customize-username">
<title
>Brugernavn for redigering af ændringslog</title>
<para
>Så snart du bruger menupunktet <menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Indsæt indgang i ændringsloggen...</guimenuitem
></menuchoice
>, 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. </para>
</formalpara>

<formalpara id="customize-cvspath">
<title
>Søgesti til CVS</title>
<para
>Her kan du sætte navnet (eller søgestien) for <command
>cvs</command
>-kommandolinjeklienten. Normalt bruges den kørbare fil som findes i din <envar
>$PATH</envar
> af &cervisia;. </para>
</formalpara>

<formalpara id="customize-editor">
<title
>Editor</title>
<para
>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 <command
>gnuclient</command
> her. Du kan også indtaste strengen <envar
>$EDITOR</envar
>, hvis miljøvariablen <envar
>$EDITOR</envar
> peger på en editor som selv åbner et X11-vindue. </para>
</formalpara>

</sect1>

<sect1 id="customize-commands">
<title
>Diverse kommandoer</title>

<formalpara id="customize-context">
<title
>Antal sammenhængslinjer i sammenligningsdialogen</title>
<para
>&cervisia; bruger flaget <option
>-U</option
> for <command
>diff</command
> for sammenligningsdialogen. Dette lader <command
>diff</command
> vise et begrænset antal linjer omkring hver forskel. Her kan du angive parameteren for flaget <option
>-U</option
>. </para>
</formalpara>

<formalpara id="customize-diffopt">
<title
>Yderligere valgmuligheder for cvs sammenligning</title>
<para
>Her kan du tilføje yderligere flag til <command
>diff</command
>. Et almindeligt eksempel er <option
>-b</option
> som lader <command
>diff</command
> ignorere ændringer i mellemrum. </para>
</formalpara>

<formalpara id="customize-tabwidth">
<title
>Tabulatorbredden i sammenligningsdialoger</title>
<para
>I sammenligningsdialogen, ekspanderes tabulatortegn som findes i filen eller udskriften af <command
>diff</command
>-kommandoen til et fast antal mellemrum. Normalt erstattes hver tabulator med otte mellemrum, men du kan indstille en anden værdi. </para>
</formalpara>

<formalpara id="customize-difffrontend">
<title
>Ydre sammenligningsgrænseflade</title>
<para
>Når du bruger nogen af funktionerne som viser sammenligningsdialogen, såsom <menuchoice
><guimenu
>Vis</guimenu
><guimenuitem
>Forskel mod lageret...</guimenuitem
></menuchoice
>, starter &cervisia; sin interne diff-grænseflade. Hvis du foretrækker en anden, såsom <application
>Kompare</application
>, <application
>TkDiff</application
> eller <application
>xxdiff</application
>, kan du indstille dette. </para>
</formalpara>

<formalpara id="customize-startstatus">
<title
>Start <menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Status</guimenuitem
></menuchoice
> automatisk</title
> 

<para
>Når du markerer dette, køres kommandoen <menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Status</guimenuitem
></menuchoice
> 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. </para>
</formalpara>

<formalpara id="customize-timeout">
<title
>Tidsgrænse inden en fremgangsdialog vises</title>
<para
>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 <menuchoice
><guimenu
>Vis</guimenu
><guimenuitem
>Forskel til lager...</guimenuitem
></menuchoice
> 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. </para>
</formalpara>

<formalpara id="customize-compression">
<title
>Standard-komprimeringsniveau</title>
<para
><command
>cvs</command
>-klienten komprimerer filer og programrettelser når de sendes via et netværk. Med kommandolinjeflaget <option
>-z</option
>, 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 <menuchoice
><guimenu
>Lager</guimenu
><guimenuitem
>Lagre...</guimenuitem
></menuchoice
>. </para>
</formalpara>

</sect1>


<sect1 id="customize-look">
<title
>Udseende</title>

<formalpara id="customize-splitter">
<title
>Opdel hovedvinduet vandret</title>
<para
>&cervisia;s hovedvindue opdeles normalt lodret i et vindue med filtræet, og et med udskrift. Alternativt kan du arrangere dem vandret. </para>
</formalpara>

<formalpara id="customize-protocolfont">
<title
>Skrifttype for protokolvindue</title>
<para
>Dette er skrifttypen som bruges i protokolvinduet. Dette er vinduet som viser udskriften fra <command
>cvs</command
>-klienten. </para>
</formalpara>

<formalpara id="customize-annotatefont">
<title
>Skrifttype for kommentarvisning</title>
<para
>Dette er skrifttypen som bruges i kommentarvisningen. </para>
</formalpara>

<formalpara id="customize-difffont">
<title
>Skrifttype for sammenligningsvisning</title>
<para
>Dette er skrifttypen som bruges i sammenligningsdialoger. </para>
</formalpara>

</sect1>
</chapter>


<chapter id="appendix">
<title
>Appendiks</title>

<sect1 id="ignoredfiles">
<title
>Filer som ignoreres</title>

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

<itemizedlist>

<listitem
><para
>En statisk liste med indgange, som omfatter ting som <literal role="extension"
>*.o</literal
> og <filename
>core</filename
>. For detaljer, se &CVS;-dokumentationen. </para
></listitem>
<listitem
><para
>Filen <filename
><envar
>$HOME</envar
>/.cvsignore</filename
>. </para
></listitem>

<listitem
><para
>Miljøvariablen <envar
>$CVSIGNORE</envar
>. </para
></listitem>
<listitem
><para
>Filen <filename
>.cvsignore</filename
> i de respektive mapper. </para
></listitem>

</itemizedlist>

<para
><command
>cvs</command
> selv slår desuden indgange op i <filename
><envar
>$CVSROOT</envar
>/cvsignore</filename
>, 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 <filename
>.cvsignore</filename
> i din hjemmemappe. </para>

</sect1>
   

<sect1 id="information">
<title
>Yderligere information og understøttelse</title>

<itemizedlist>

<listitem
><para
>&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 <userinput
>info:/cvs</userinput
> i <application
>hjælpecentralens</application
> stedlinje. Som et alternativ, kan du kun vælge <menuchoice
><guimenu
>Hjælp</guimenu
><guimenuitem
>CVS-Info</guimenuitem
> </menuchoice
> i &cervisia;. En elektronisk HTML-version af Cederqvist-dokumentet er tilgængeligt <ulink url="http://cvshome.org/docs/manual/cvs.html"
>på internettet</ulink
>. </para>

<para
>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. </para
></listitem>

<listitem
><para
>Karl Fogel har skrevet den udmærkede bog <ulink url="http://cvsbook.red-bean.com/index.html"
>Open Source Development with CVS</ulink
>. 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. </para
></listitem>

<listitem
><para
>&CVS; spørgsmål diskuteres på en særlig <ulink url="http://mail.gnu.org/mailman/listinfo/info-cvs"
>e-postliste</ulink
>. </para
></listitem>

<listitem
><para
>Der er en Usenet-gruppe som hedder <literal
>comp.software.config-mgmt</literal
>, 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;. </para
></listitem>

<listitem
><para
>Sidst men ikke mindst, er der en (lidet brugt) <ulink url="http://lists.sourceforge.net/mailman/listinfo/cervisia-user"
>&cervisia; e-postliste</ulink
>. </para
></listitem>

</itemizedlist>

</sect1>
   

<sect1 id="commandreference">
<title
>Kommandoreference</title>
      
<!-- File Menu -->
<sect2 id="menufile">

<title
>Fil-menuen</title>

<variablelist>

<varlistentry>
<term
><menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Åbn arbejdsmappe...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner en arbejdsmappe i hovedvinduet. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Nylige arbejdsmapper...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner en af arbejdsmapperne som blev brugt for nylig. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Indsæt indgang i ændringsloggen...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner editoren for ændringslog, forberedt så du kan tilføje en ny indgang med dagens dato. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo
><keycap
>&Ctrl;</keycap
><keycap
>U</keycap
></keycombo
></shortcut
> <guimenu
>Fil</guimenu
><guimenuitem
>Opdatér</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Kører 'cvs update' på markerede filer og ændrer status og versionsnummer i listen ifølge resultatet. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycap
>F5</keycap
></shortcut
> <guimenu
>Fil</guimenu
><guimenuitem
>Status</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Kør 'cvs -n update' på markerede filer og ændrer status og versionsnummer i listen ifølge resultatet. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Redigér</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner den markerede filen i editoren. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Resolvér...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner en dialog for den markerede filen som lader dig resolvere konflikter fra en indfletning i den. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycap
>#</keycap
></shortcut
> <guimenu
>Fil</guimenu
><guimenuitem
>Indsend...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Lader dig indsende de markerede filer. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycap
>+</keycap
></shortcut
> <guimenu
>Fil</guimenu
><guimenuitem
>Tilføj til lager...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Lader dig tilføje de markerede filer til lageret. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Tilføj binær fil...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Lader dig tilføje de markerede filerne til lageret som binære filer (<command
>cvs add <option
>-kb</option
></command
>). </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycap
>-</keycap
></shortcut
> <guimenu
>Fil</guimenu
><guimenuitem
>Fjern fra lager...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Lader dig fjerne de markerede filerne fra lageret. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Fil</guimenu
><guimenuitem
>Vend tilbage</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Kasserer alle lokale ændringer som du har lavet for de markerede filer og går tilbager til versionen i lageret (flaget <option
>-C</option
> til <command
>cvs update</command
>). </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo
><keycap
>&Ctrl;</keycap
><keycap
>Q</keycap
></keycombo
></shortcut
> <guimenu
>Fil</guimenu
><guimenuitem
>Afslut</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Afslutter &cervisia;. </para
></listitem>
</varlistentry>

</variablelist>

</sect2>

<!-- View Menu -->
<sect2 id="menuview">

<title
>Vis-menuen</title>

<variablelist>

<varlistentry>
<term
><menuchoice
><shortcut
><keycap
>Escape</keycap
></shortcut
> <guimenu
>Vis</guimenu
><guimenuitem
>Stop</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Afbryder alle underprocesser som kører. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo
><keycap
>&Ctrl;</keycap
><keycap
>L</keycap
></keycombo
></shortcut
> <guimenu
>Vis</guimenu
><guimenuitem
>Gennemse log...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Viser versionstræet for den markerede fil. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo
><keycap
>&Ctrl;</keycap
><keycap
>A</keycap
></keycombo
></shortcut
> <guimenu
>Vis</guimenu
><guimenuitem
>Kommentarer...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Viser en kommentarvisning for den markerede fil, dvs. en visning hvor du kan se hvilken person som senest ændrede filen, for hver linje. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo
><keycap
>&Ctrl;</keycap
><keycap
>D</keycap
></keycombo
></shortcut
> <guimenu
>Vis</guimenu
><guimenuitem
>Forskel mod lageret...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Viser forskellene mellem den markerede fil i arbejdsmappen og versionen som du senest opdaterede (basisversionen). </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Vis</guimenu
><guimenuitem
>Seneste ændring...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Viser forskellen mellem versionen for den markerede filen som du senest opdaterede (basisversionen) og en tidligere version. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Vis</guimenu
><guimenuitem
>Historik...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Viser &CVS;-historikken som den rapporteres af serveren. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Vis</guimenu
><guimenuitem
>Ekspandér filtræ</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner alle grene i filtræet så du kan se alle filer og alle mapper. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Vis</guimenu
><guimenuitem
>Fold filtræ</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Lukker alle grene i filtræet. </para
></listitem>
</varlistentry>

</variablelist>

</sect2>

<!-- Advanced Menu -->
<sect2 id="menuadvanced">

<title
>Avanceret-menuen</title>

<variablelist>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Mærke/gren...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Tilføjer et mærke eller laver en gren for de markerede filer. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Fjern mærke...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Fjerner et givet mærke fra de markerede filer. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Opdatér til mærke/dato...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Ændrer de markerede filer til et givet mærke eller en given dato, og gør mærket eller datoen klæbrig. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Opdatér til hovedversion...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Ændrer de markerede filer til den respektive hovedversion. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Flet...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Fletter enten en given gren eller ændringerne mellem to forskellige mærker for de markerede filer. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Tilføj overvågning...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Tilføjer overvågning for et sæt begivenheder for de markerede filer. </para
></listitem>
</varlistentry>
<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Fjern overvågning...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Fjerner overvågning for et sæt begivenheder fra de markerede filer. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Vis overvågning</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Giver en liste af overvågere af de markerede filer. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Redigér filer</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Kør <command
>cvs edit</command
> for de markerede filer. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Slut med at redigere filer</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Kører <command
>cvs unedit</command
> for de markerede filer. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Vis redigering</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Kør <command
>cvs editors</command
> for de markerede filer. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Lås filer</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Låser de markerede filer. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Lås filer op</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Låser de markerede filer op. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Avanceret</guimenu
><guimenuitem
>Lav rettelse mod lager</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Laver en rettelse ud fra ændringerne i din arbejdsmappe. </para
></listitem>
</varlistentry>

</variablelist>

</sect2>

<!-- Repository Menu -->
<sect2 id="menurepository">

<title
>Lager-menuen</title>

<variablelist>

<varlistentry>
<term
><menuchoice
><guimenu
>Lager</guimenu
><guimenuitem
>Check ud...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner en dialog som lader dig checke et modul ud fra lageret. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Lager</guimenu
><guimenuitem
>Importér...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner en dialog som lader dig importere en pakke til lageret. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Lager</guimenu
><guimenuitem
>Lagre...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Indstiller en liste med lagre som du ofte bruger, og hvordan der er adgang til dem. </para
></listitem>
</varlistentry>

</variablelist>

</sect2>

<!-- Settings Menu -->
<sect2 id="menuoptions">
<title
>Opsætningsmenuen</title>

<variablelist>

<varlistentry>
<term
><menuchoice
><guimenu
>Opsætning</guimenu
><guimenuitem
>Indstil genveje...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner en dialog til at indstille tastebindinger. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Opsætning</guimenu
><guimenuitem
>Indstil Cervisia...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner en dialog til at indstille &cervisia;. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Opsætning</guimenu
><guimenuitem
>Lav mapper ved opdatering</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Afgør om opdateringer laver mapper i arbejdsmappen som ikke tidligere fandtes der (flaget <option
>-d</option
> for <command
>cvs update</command
>). </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Opsætning</guimenu
><guimenuitem
>Fjern tomme mapper ved opdatering</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Afgør om opdateringer fjerner tomme mapper i arbejdsmappen. (flaget <option
>-P</option
> for <command
>cvs update</command
>). </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Opsætning</guimenu
><guimenuitem
>Opdatér rekursivt</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Afgør om opdateringer er rekursive (flaget <option
>-r</option
> for <command
>cvs update</command
>). </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Opsætning</guimenu
><guimenuitem
>Indsend og fjern rekursivt</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Afgør om indsendelser og fjernelser er rekursive (flaget <option
>-r</option
> for <command
>cvs add</command
> og <command
>cvs remove</command
>). </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Opsætning</guimenu
><guimenuitem
>Redigér (cvs edit) automatisk om nødvendigt</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Afgør om <command
>cvs edit</command
> køres automatisk så snart du redigerer en fil. </para
></listitem>
</varlistentry>

</variablelist>

</sect2>

<!-- Help -->
<sect2 id="menuhelp">
<title
>Hjælpemenuen</title>

<variablelist>

<varlistentry>
<term
><menuchoice
><shortcut
><keycap
>F1</keycap
></shortcut
> <guimenu
>Hjælp</guimenu
><guimenuitem
>Cervisia-håndbog</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Aktiverer KDE's hjælpesystem med starten af &cervisia;s hjælpesider (dette dokument).  </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Hjælp</guimenu
><guimenuitem
>Rapportér fejl...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner en dialog til fejlrapportering. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Hjælp</guimenu
> <guimenuitem
>Om Cervisia</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Dette viser information om version og forfattere. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Hjælp</guimenu
> <guimenuitem
>Om KDE</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Dette viser KDE's version og anden basal information. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Hjælp</guimenu
> <guimenuitem
>CVS-manual</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Åbner &CVS;-infosider i KDE's hjælpesystem.  </para
></listitem>
</varlistentry>

</variablelist>

</sect2>

</sect1>

</chapter>


<chapter id="credits-and-licenses">
<title
>Medvirkende og licens</title>
&underFDL; </chapter>
</book>
