# Manual de &cervisia;

## Introdución

&cervisia; é unha interface gráfica para o control de versións. O propósito é soportar &CVS; e outros programas de control de versións cunha interface unificada, fornecendo visores para a resolución de conflitos, diferenzas e historial, estado dos ficheiros da copia de traballo, e soporte para a maioría das funcións do control de versións. Pode obter &cervisia; compilando o módulo kdesdk ou instalando o paquete kdesdk que forneza a súa distribución. Na actualidade só está soportado &CVS;, pero poden integrarse outros sistemas de control de versións no futuro.

Un sistema de control de versións é unha ferramenta para rexistar, xestionar e distribuir diferentes versións de ficheiros. &CVS; é un sistema de control de versións. Permítelle partillar con facilidade as súas modificacións, xa que cada un dos contribuíntes pode traballar na súa copia local ao mesmo tempo, sen temor a sobrescreber as modificacións dos outros. Permite recuperar versións pasadas (útil para a xestión de erros), a criación de gallas (para o desenvolvimento experimental ou para versións do código) e máis funcionalidades.

O repositorio principal polo xeral contén un proxecto colaborativo (comercial ou non), pero pode tirarlle proveito ás funcionalidades de control de versións de &CVS; mesmo para proxectos persoais. É fácil configurar un repositorio local, e terá trazabilidade para mudanzas que provocasen un erro, reverter mudanzas, evitar perdar acidentais de información, &etc;.

O repositorio contén os ficheiros do proxecto, e cada contribuínte mantén a súa propia copia local, chamada copia de traballo ou borrador de traballo; entón cada un pode engadir as súas propias modificacións ao repositorio principal (un proceso chamado "entrega") e/ou actualizar a súa propia copia para reflectir os cambios recentes feitos por outros contribuíntes.

## Comezando

### Aceder ao Repositorio

Nesta sección, mostraremos como usar as funcionalidades básicas do sistema de control de versións mediante &cervisia; para obter módulos do repositorio e traballar con eles. Para facer isto, deberá ter aceso ao repositorio como cliente, o que implica que alguén (probabelmente o administrador do repositorio &CVS;) lle deu unha conta no servidor. Opcionalmente, pode criar un repositorio local para o seu propio proxecto.

Se prevé desenvolver un proxecto complexo, é boa idea usar as funcionalidade do &CVS;, mesmo se é o único desenvolvente. Pode facer todas as modificacións na copia de traballo, e usar &cervisia; (ou outra ferramenta de &CVS;) para actualizar e entregar. Deste xeito, terá a capacidade de coñecer que mudanza causou un erro, reverter cambios evitar perdas acidentais de informacio, &etc;. Se usa &cervisia;, criar un repositorio local é sinxelo.

#### Criar un repositorio local

1. Abra o diálogo Criar un repositorio novo (cvs init) escollendo Repositorio Criar....

2. Press the ... button to select the folder where you want to create the repository, or enter its location in the text box. For instance, if you want to place the repository in the `/home/user` folder, and to name it `cvsroot`, you should type `/home/user/cvsroot` in the text box, or select the `/home/user` folder using the file picker, and add `cvsroot`.

3. Confirme a operación premendo no botón OK. &cervisia; criará e inicializará o novo cartafol de repositorio.

4. Agora pode importar o seu traballo actual ao repositorio, ou simplesmente criar un cartafol no repositorio para simplesmente iniciar un novo módulo desde cero.

&cervisia; oferece unha interface integrada para xestionar todos os seus repositorios, o diálogo Configurar o aceso aos repositorios. Para mostralo, escolla o ítem do menú Repositorio Repositorios....

#### Unha captura de pantalla do diálogo de Configuración do aceso aos repositorios de &cervisia;

Unha captura de pantalla do diálogo de Configuración do aceso aos repositorios de &cervisia;

Hai varios métodos de aceder a un repositorio &CVS;. Pode facelo mediante autenticación por contrasinal (:pserver:), shell cifrada (mediante :ext:), repositorio local (:local:), &etc;. O formato para a localización do repositorio é (os ítens opcionais aparecen entre corchetes):

`[:método:][[usuario][:contrasinal]@]servidor[:[porto]]/rota/ao/repositorio`

Non sempre son precisos todos estes ítens (usuario, contrasinal, servidor, porto) para aceder ao repositorio. A información requerida depende do método de aceso que use, que pode ser clasificado como segue:

Local

- O método de aceso local é que &CVS; usa por omisión. Polo tanto, é opcional engadir o :local: á localización do servidor, pode escreber simplesmente a rota ao cartafol onde está o repositorio &CVS;, e será acesíbel desde o seu ordenador, como `/rota/ao/repositorio` ou cun exemplo real `/home/cvs`.

  Pode estar fisicamente nun disco montado mediante NFS, pero este é un detalle sen importancia. Se criou un repositorio local, a localización será simplesmente a rota a el.

↱

- A localización do repositorio é algo do estilo de `:ext:usuario@maquina.url.org:/rota/ao/repositorio`.

  Este método requere que teña unha conta de usuario no servidor (no exemplo, `maquina.url.org`) e que use unha shell remota para a comunicación. Por omisión, &CVS; usará ↱, porén hai tempo que ↱ é considerada insegura, e polo xeral xa foi substituída por &ssh;.

  Se desexa usar &ssh;, debe configurar a variábel de entorno $`CVS_RSH` como &ssh; cando use o cliente `cvs`. &cervisia; fai isto facilmente.

  Lembre que &cervisia; non pode responder as posíbeis peticións de contrasinais que faga o servidor. Debe asegurarse de que o aceso remoto funciona sen pedirlle o contrasinal. Con ↱ sen parchear, isto pode facerse por exemplo criando un ficheiro `.rhosts` no seu cartafol inicial cunha lista de servidores autenticados (consulte a páxina de manual de ↱).

  With &ssh;, it can be achieved by copying your public key located in the file `identity.pub`, located in the `$`HOME`/.ssh/` folder to the server. In this case, the key must not be encrypted with a passphrase (see the &ssh; manpage and the &CVS;/SSH FAQ on SourceForge). If you are unsure about these issues, ask your system administrator.

pserver

- A localización do repositorio será como `:pserver:usuario@maquina.url.org:/rota/ao/repositorio`

  Este método acede ao servidor mediante un protocolo especial cunha autenticación relativamente feble (`pserver` significa autenticación con contrasinal). Antes de que poda usar un servidor destes, precisará un nome de usuario e un contrasinal dado polo administrador do servidor &CVS;, e deberá autenticarse. Lembre que o seu nome de usuario do &CVS; para a autenticación por contrasinal non ten porque ser o do sistema. Antes de aceder ao servidor &CVS;, deberá autenticarse.

  Os proxectos de fontes abertas polo xeral oferecen aceso &CVS; anónimo ás súas fontes. Isto significa que pode obter facilmente as últimas fontes, modificar e criar parcher contra o repositorio sen pedir unha conta &CVS;. Como regra xeral, o &CVS; anónimo usa autenticación por contrasinal (:pserver:), e é un repositorio de só leitura, no que non se permite entregar directamente os seus cambios.

Se coñece o método de aceso e a localización do repositorio, poderá engadilo á lista de repositorios de &cervisia;:

### Engadir un repositorio novo

1. Open the Configure Access to Repositories dialog by choosing the Repository Repositories... menu item.

2. Prema o botón Engadir... para abrir o diálogo Engadir repositorio.

3. Enter the repository location in the Repository: text box. &cervisia; will automatically disable the areas of the dialog that are not relevant to the access method you entered.

4. If you are using the ext method to access the repository, enter the remote shell you wish to use (⪚ &ssh;) in the Use remote shell (only for :ext: repositories): text box.

5. Prema OK. Verá na lista de repositorios o que acaba de introducir.

6. If the access method to the repository you just entered is password authentication (pserver), you will need to login before connecting the server. Click the repository on the list to select it, and press the Login... button. Enter your password in the upcoming dialog.

   Se indicou correctamente o contrasinal, a coluna Estado no repositorio pserver mudará de Non autenticado para Autenticado.

7. Prema OK para aplicar as súas modificacións, ou para engadir outra localización á lista. &cervisia; guardará tantas localización como queira.

### Importar un módulo no repositorio

Nesta sección, veremos como pode pór un proxecto novo no repositorio &CVS;. Se só quer traballar cun proxecto existente que xa estexa nun repositorio, pode saltar esta sección.

Hai dúas maneiras de pór un proxecto no &CVS;:

- Importar os ficheiros e cartafoles nun módulo novo, usando o diálogo de importación de &cervisia;. Os módulos son os cartafoles superiores na árbore de cartafoles do repositorio &CVS;, e son usados para separar e organizar os diferentes proxectos de sóftware dentro do repositorio.

- Crie un módulo baleiro e engada os novos ficheiros e cartafoles manualmente. Terá máis control, aínda que probabelmente lle leve algo máis de tempo.

Lembre que &CVS; foi deseñado inicialmente para xestionar ficheiros de texto. Moitas funcionalidades, como a fusión de revisións, a criación de parches nun formato lexíbel, &etc;, só poden facerse sobre ficheiros de texto. Isto non significa que non poda usar &CVS; para manter ficheiros binarios, só que terá que indicarlle explicitamente a &CVS; se é un ficheiro de texto ou un binario. Se declara o tipo errado de ficheiro, terá problemas coa funcionalidade de &CVS; para eses ficheiros, e poderán acabar corrompidos.

Importar un proxecto (como un módulo novo) ten algunhas vantaxes: importará todos os ficheiros e cartafoles recursivamente, e o módulo será criado automaticamente por si. Isto simplifica a importación de grandes proxectos xa existentes. Porén, ten algunhas desvantaxes: non poderá usar o diálogo de importación de &cervisia; para engadir ficheiros a módulos existentes, e pode importar os ficheiros como texto ou como binarios. Pode evitar esta limitación criando un cartafol con ficheiros de só un dos tipos, ou informando de padróns de ficheiros que deben sen ignorados durante o proceso de importación.

For instance, suppose your project contains text files and some PNG images (binary files) only. You can tell &CVS; to ignore all files with the pattern `*.png` while importing the other files as text, or you can move the images to a separate folder, and then import the remaining files (as text files). Either way, you will have to checkout the newly imported module to a new working copy, copy the missing files and folders to it, add and commit them to the repository to complete the import process.

As an alternative, you can add the files and folders manually, creating an empty module for them. To add an empty module to a repository, just create a new folder in the &CVS; repository root folder. The name of this new folder will be the name of the module. Checkout the new empty module. Then copy the files and folders to the working copy, add and commit to upload them to the &CVS; repository.

#### Unha ilustración do diálogo de importación de &cervisia;

Unha ilustración do diálogo de importación de &cervisia;

En screenshot-import pode ver o diálogo que o axudará a importar un proxecto como un módulo. Para aceder ao diálogo de importación de &cervisia;, escolla o ítem do menú Repositorio Importar....

Repositorio: co-repository

- Escrea ou escolla na lista despregábel o nome do repositorio &CVS;, tamén coñecido como $`CVSROOT`. Debe ter permisos de escrita nel, e o repositorio debe estar correctamente inicializado. Se o repositorio non existe aínda, pode criar un escollendo o ítem do menú Repositorio Criar....

  A lista despregábel mostra unha lista cos repositorios que introduciu anteriormente co diálogo Configurar o aceso aos repositorios. Se o repositorio é remoto, verifique que funciona a autenticación. Consulte accessing-repository para máis información.

Módulo: co-module

- O nome do módulo no que guardar o proxecto. Tras a importación, o proxecto poderá ser actualizado con este nome. Consulte checkingout para máis información. Este tamén é o nome do cartafol correspondente no repositorio.

Cartafol de traballo:

- O cartafol superior do proxecto que quer importar. A importación comeza desde este cartafol e baixa recursivamente.

Marca do distribuidor: co-vendortag

- A marca do distribuidor é usada historicamente para manexar fontes de terceiros. Simplesmente use o seu nome de usuario se non ten nengunha idea mellor. Non importa moito o que indique aquí.

Marca de versión: co-releasetag

- Esta marca tamén é usada historicamente para importar diferentes versións de sóftware de terceiros. Se non está a facer isto, use a palabra `start` ou unha cadea `PROXECTO_1.0` onde `PROXECTO` é o nome do proxecto e `1.0` é o número da versión importada.

Ignorar ficheiros:

- Se preenche este campo, pasaráse unha opción `-l `nomes de ficheiro`` adicional ao comando `cvs import`. Esta entrada é interpretada como unha lista de padróns de nomes de ficheiro a ignorar, separados por espazo. En xeral, é máis limpo e menos propenso a erro controlar que ficheiros van ao repositorio criando un cartafol que só conteña os ficheiros que desexa importar e comezar desde iso. Porén, esta entrada pode ser útil se o proxecto contén ficheiros que por omisión son ignorados por &CVS;, ⪚ ficheiros co nome `core`. En tal caso, simplesmente indique o caracter `!` neste campo: isto sobrescrebe o esquema de ficheiros a ignorar de &CVS;, consulte ignoredfiles.

Comentario: co-comment

- Use este campo para rexistrar os comentarios que poda ter acerca da orixe, uso, desenvolvimento, &etc; dos ficheiros que está a importar.

Importar como binarios

- Se sinala esta opción, todos os ficheiros serán importados no modo binario, &ie; será pasado o argumento `-kb` ao `cvs import`.

Usar a data de modificación do ficheiro como a de importación

- Se sinala esta opción, a hora da importación será a de modificación do ficheiro no canto de ser a real da importación.

Tras preencher este formulario e confirmar os datos premendo OK, será usado o seguinte comando &CVS;:

    cvs -d repositorio import -m "" módulo marcaDistribuidor marcaVersión

### Obter un módulo do repositorio

Agora que difiniu a localización do seu repositorio, e importou os ficheiros iniciais nel, é hora de obter o módulo desde o repositorio &CVS;, criando a súa copia de traballo.

Tamén debe coñecer o nome da galla ou marca que queira usar.

As gallas dun módulo son versións paralelas do módulo. Un bon exemplo real do uso desta característica é a publicación dun proxecto de sóftware. Tras a publicación dunha versión principal, haberá erros no código que deberán ser corrixidos, pero a xente tamén ha querer engadir novas funcionalidades no programa. É moi difícil facer ambas as cousas á vez porque as novas funcionalidades polo xeral tamén inseren novos erros, co que se fai difícil corrixir os anteriores. Para arranxar esta dificuldade, &CVS; permítelle criar unha versión paralela, que chamaremos a "versión estábel" onde só se han poder engadir correicións de erros, deixando a galla principal (HEAD) aberta para engadir novas funcionalidades.

As marcas son usadas para sinalar unha versión dun proxecto. &CVS; sinala unha versión de cada ficheiro coa marca, de tal xeito que cando obteña ou actualice para unha marca en concreto, sempre obterá as mesmas versións dos ficheiros. Deste xeito, e ao contrario do que as gallas, as marcas non son dinámicas: non pode desenvolver unha marca. As marcas son úteis para sinalar publicacións, cambios grandes no código, &etc;. Usando as marcas, pode devolver con facilidade o proxecto a un estado anterior, para reproducir e facer o seguimento dos erros, xerar de novo a publicación do código, &etc;.

#### Unha ilustración do diálogo de obtención de &cervisia;

Unha ilustración do diálogo de obtención de &cervisia;

Repositorio:

- O nome do repositorio &CVS;, tamén chamado ``$CVSROOT``. A lista despregábel mostra unha lista cos repositorios que indicou anteriormente usando o diálogo Configurar o aceso aos repositorios. Se o repositorio é remoto, verifique que funciona a autenticación. Consulte accessing-repository para máis información.

Módulo:

- O nome do módulo a obter. Se está a traballar cun repositorio xa existente, probabelmente poda obter este nomo do seu administrador de sistema; ou, se é un repositorio de sóftware de fontes abertas, pode obter os nomes dos módulos na páxina web do proxecto. Se quer criar un módulo novo desde cero usando un repositorio local, simplesmente crie un cartafol novo no cartafol raíz do repositorio local. O nome do cartafol será o mesmo que o do novo módulo baleiro.

  Alternatively, if the repository has a ``$CVSROOT`/modules` file, you can retrieve a list of available modules by pressing the Fetch List button.

  Lembre que é posíbel obter calquer subcartafol do módulo, sen obter o resto del. Simplesmente indique tamén a rota ao subcartafol. Por exemplo, se quer obter só o subcartafol `doc/cervisia` do módulo kdesdk, indique `kdesdk/doc/cervisia` neste campo.

Marca de galla:

- O nome da galla ou marca que queira obter. Se deixa este campo en branco, &cervisia; obterá a galla principal (HEAD).

Cartafol de traballo:

- The folder under which the module should be checked out. Note that the working copy toplevel folder is named after the module you are retrieving, unless you give it an alternative name in the Check out as: field.

Obter como:

- Isto fará que os ficheiros da copia de traballo que está a ser obtida vaian a un cartafol con outro nome baixo o cartafol de traballo, e non a un cartafol co mesmo nome que o módulo.

Só exportar

- Se sinala esta opción, os ficheiros serán exportados e non obtidos. A exportación obtén unha copia das fontes do módulo sen os cartafoles de administración de &CVS;. Isto pode ser usado, por exemplo, para preparar o código fonte para ser publicado.

Recursive checkout

- Checkout all files and folders recursively.

### A fiestra principal, ver o estado do ficheiro e actualizar

Cando inicia &cervisia;, e abre unha copia de traballo mediante Ficheiro Abrir un borrador de traballo..., poderá ver dúas áreas principais na fiestra principal de &cervisia;: a superior é unha vista en árbore (hierárquica) da copia de traballo actual; a do fondo é usada para mostrar os comandos &CVS; usados por &cervisia; para facer o traballo, así como a saída xerada por eses comandos.

Por omisión, &cervisia; non mostra os ficheiros contidos nos subcartafoles, polo que terá que premer nos cartafoles que queira ver. Para mostrar todos os ficheiros da copia de traballo, escolla Vista Expandir a árbore de ficheiros. Para voltar a pechar todos os cartafoles da copia de traballo, escolla Vista Pechar a árbore de ficheiros.

Segundo a configuración dos seus ficheiros `.cvsignore`, os ficheiros que normalmente non querería incluír no repositorio - tais como ficheiros de código obxecto - non serán mostrados na vista en árbore. Para cada ficheiro, poderá ver o seu estado. Na configuración predeterminada, tras abrir o borrador de traballo, este será "Descoñecido" porque &cervisia; retrasa a obtención desta información até que escolla os ficheiros e cartafoles que queira actualizar ou ver eescolla Ficheiro Actualizar ou Ficheiro Estado. Con esta forma de traballar, terá disponíbeis as funcionalidades mínimas mesmo se non ten unha conexón permanente co servidor &CVS;.

#### Unha ilustración da vista principal de &cervisia;

Unha ilustración da vista principal de &cervisia;

The commands in the File menu usually act only on the files which you have marked. You may also mark folders. Now choose File Status or press F5. &cervisia; issues a

    cvs update -n nomes dos ficheiros

para obter información do estado dos ficheiros marcados. Lembre que &cervisia; baixará recursivamente nos subcartafoles só se activase a opción correspondente no menú Configuración. Segundo o estado de cada ficheiro, verá unha entrada na coluna Estado:

Modificado localmente

- Isto significa que modificou o ficheiro se o compara coa versión no repositorio.

Engadido localmente

- Isto significa que o ficheiro non existe no repositorio, senón na súa copia de traballo e que ordenou que fose engadido. A inserción no repositorio só será efectiva cando faga unha entrega.

Eliminado localmente

- Isto significa que ordenou que o ficheiro sexa eliminado, pero que aínda existe no repositorio. A eliminación só se fará efectiva cando faga unha entrega.

Precisa ser actualizado

- Isto é mostrado se no repositorio hai unha versión máis recente do ficheiro, ⪚ porque outro desenvolvente entregase unha modificación. Polo xeral, ha querer actualizar este ficheiro para ter unha versión ao día no seu cartafol.

Precisa un parche

- Isto é en esencia o mesmo que o anterior; a diferenza é que no caso dunha actualización, o servidor &CVS; só lle ha transferir un parche no canto de todo o ficheiro.

Precisa ser fusionado

- Indica que é preciso facer unha fusión da revisión do ficheiro na súa copia de traballo coa versión no repositorio. Isto acontece polo xeral se fixo modificacións ao ficheiro mentres outra persoa estregou outras modificacións. Se escolle actualizar, as modificacións no repositorio serán fusionadas no seu ficheiro. No caso de conflitos (&ie; se alguén modificou as mesmas liñas que na súa copia de traballo) o novo estado será "Conflito".

Actualizado

- Indica que o ficheiro é idéntido á versión no repositorio.

Conflito

- Isto é mostrado se o ficheiro contén marcas de conflito. Posibelmente actualizase o ficheiro e non resolvese todos os conflitos.

Non está no CVS

- Indica que o ficheiro non está rexistrado no repositorio &CVS;. Se quer que estexa disponíbel para os demais, debe engadilo ao repositorio. Se non, poida que sexa mellor engadilo ao seu ficheiro `.cvsignore`.

Now that you have got an overview of the current status of the &CVS;, you may want to do an update. Mark some files (or the root of the folder tree which is equivalent to marking all files in this folder). Now choose File Update (Of course, you could have chosen this at the beginning of the session). For some of the files the status may change now. Typically, files which had "Needs Patch" or "Needs Update" are updated. So the following new items are possible in the status column:

Actualizado

- Móstrase se o ficheiro foi actualizado desde o repositorio.

Parcheado

- Indica que o servidor &CVS; enviou un parche para este ficheiro e que foi aplicado con éxito. Se o parche non fose aplicado satisfactoriamente debido a que aparecesen conflitos entre as súas modicacións es as que outro desenvolvente entregase no repositorio, o estado sería Conflito.

Talvez se decate de que segundo o estado do ficheiro, a súa liña terá unha cor diferente. As cores son escollidas para reflectir a prioridade do estado. Por exemplo, un ficheiro cun conflito estará sinalado en vermello para mostrar que debe resolver os conflitos antes de que poda continuar a traballar no ficheiro. Se o seu cartafol contén un número grande de ficheiros, pode perder a vista xeral. Para obter información máis resumida acerca de cais ficheiros teñen un estado inusual, prema no cabezallo da coluna Estado. A lista de ficheiros será ordenada pola prioritade, polo que ha ter a información importante no cume da lista. Para voltar á ordenación alfabética, prema no cabezallo da coluna Nome do ficheiro.

## Traballar cos ficheiros

All commonly used &CVS; functionality is directly available in &cervisia;'s main view. Commands usually act on several files at once, namely all which currently selected. If the selection includes folders, its interpretation depends on the settings made under the Settings menu. For example, if Settings Commit & Remove Recursively is checked and you choose File Commit... while a folder is selected, then all files in the tree under that folder are committed. Otherwise, only the regular files in the folder itself are affected.

### Unha ilustración do menú contextual de &cervisia;

The most used actions are also available by right clicking the files in the tree view, through the context menu. screenshot-popup shows &cervisia;'s main window context menu.

You can simply edit a file by double-clicking on it or selecting it and pressing &Enter;. This starts the default application that handles that file type (the default application for each file type is a &kde; wide setting). If the default application is not the one you want to use, you can right click the file and choose the Edit With submenu, and select one of the other applications that handle that file type.

### Engadir ficheiros

Para engadir ficheiros a un proxecto deben darse dous pasos: primeiro, os ficheiros deben ser rexistrados en &CVS;, con outras palabras, engadidas ao repositorio. Isto é preciso, pero non de abondo. Para poder pór realmente os ficheiros no repositorio, debe entregalos. Este procedimento ten unha vantaxe importante: pode entregar os ficheiros xunto con modificacións a outras partes do proxecto. Cando fai isto, é sinxelo ver (⪚ nos correos de entrega) que todas as mudanzas forman parte dun todo.

Para facer isto, marque na vista principal de &cervisia; todos os ficheiros a engadir. Logo, escolla Ficheiro Engadir ao repositorio..., ou prema co botón dereito nos ficheiros marcados e escolla Engadir ao repositorio.... Mostrarase o diálogo Engadir ao CVS, cunha listaxe dos ficheiros marcados, pedindo confirmación. Prema OK.

&cervisia; enviará un comando

    cvs add nomes dos ficheiros

Se a operación rematou con éxito, a coluna de estado deberá dicir "Engadido ao repositorio" nos ficheiros engadidos.

&CVS; non foi deseñado para fornecer control de revisións para ficheiros binarios. Por exemplo, polo xeral fusionar ficheiros binarios carece de sentido. Ademais, por omisión &CVS; fai expansión de palabras chave (⪚ na cadea `$Revisión: 1.6 $`) cando entrega un ficheiro. Nos ficheiros binarios, tais substitucións poden corromper o ficheiro e inutilizalo.

Para deshabilitar este comportamento, debe entregar ficheiros binarios (ou outros ficheiros, como Postscript ou imaxes PNG) mediante a opción Ficheiro Engadir como binario.... Aparecerá o diálogo Engadir ao CVS, listando os ficheiros binarios que sinalou, e pedirá confirmación. Prema OK.

&cervisia; enviará un comando

    cvs add -kb nomes dos ficheiros

### Eliminar ficheiros

Like adding files, removing files is done in two steps: First, the files have to be registered as removed by choosing File Remove From Repository... or right clicking the marked files and choosing Remove From Repository... from the context menu. The CVS Remove dialog will appear, listing the files you marked, and asking for confirmation. Press OK. &cervisia; issues the command

    cvs remove -f nomes de ficheiro

Tras iso, esta modificación ao borrador de traballo debe ser entregada, posibelmente xunto con outras modificacións ao proxecto.

O comando de riba só funcionará se o ficheiro está actualizado. En outro caso, obterá unha mensaxe de erro. Este comportamento é lóxico: Se modificou o ficheiro, ou se outra persoa o modificou, primeiro debe verificar que realmente o queira desbotar.

### Engadir e borrar cartafoles

Folders are handled fundamentally different from ordinary files by &CVS;. They are not under revision control, &ie; you cannot tell which folders existed in the project at a certain time. Furthermore, folders can never be explicitly removed (except by removing them directly in the repository).

Como sucedáneo, &CVS; segue o convenio de que un cartafol é "non-existente" nunha versión do proxecto se está vacío. Este convenio pode reforzarse mediante a opción `-P` en `cvs update` e `cvs checkout`. Esta opción pode configurarse no menú Configuración Limpar os cartafoles vacíos ao actualizar.

A folder can be added to the repository choosing File Add to Repository... or right clicking the marked folder and choosing Add to Repository... from the context menu. Note that in contrast to adding files, adding folders does not require a commit afterwards. &cervisia; issues the command

    cvs add nome do cartafol

### Entregar ficheiros

Cando teña feito mudanzas de abondo na súa copia de traballo, e queira que os outros desenvolventes teñan aceso a elas, debe entregalas. Cunha entrega, porá as súas versións dos ficheiros modificados como novas revisións no repositorio. Cando máis tarde un desenvolvente faga unha actualización, obterá estas modifacións para a súa copia de traballo.

In order to commit a couple of files, select them in &cervisia;'s main view and choose File Commit... or right click the marked files and choose Commit... from the context menu.

#### Unha ilustración do diálogo de entrega de &cervisia;

Aparecerá un diálogo que lle mostra unha lista dos ficheiros escollidos na parte de riba e unha mensaxe de rexisto en baixo. &cervisia; axúdao de varias maneiras a atopar unha mensaxe de rexisto con significado: primeiro, na lista de ficheiros pode facer duplo-click nun ficheiro ou premer Intro para ver as modificacións que lle fixo ao ficheiro. Segundo, daralle unha lista das mensaxes de rexisto que uso previamente nunha lista despregábel. Terceiro, este diálogo está integrado no editor do ChangeLog de &cervisia; que se descrebe noutra sección. Cando remate o diálogo, o comando

    cvs commit -m mensaxe nomes dos ficheiros

será enviado.

Un erro frecuente que se pode atopar ao entregar é Up-to-date check failed. Isto indica que outra persoa entregou modificacións no repositorio desde a última vez que actualizou; ou, máis tecnicamente, que a súa revisión `BASE` non é a máis nova desta galla. Neste caso, &CVS; rexeitará fusionar as súas modificacións no repositorio. A solución é actualizar, resolver caisquer conflitos e entregar de novo. Por suposto, se está a traballar nun proxecto de sóftware, será bon se verifica que o programa aínda traballa despois de que actualice - despois de todo, poden aparecer interaccións mas entre as súas modificacións e as de outros, que estraguen o código.

Outro erro frecuente xera a mensaxe de erro Sticky tag 'X' for file 'X' is not a branch. Isto acontece se tenta entregar un ficheiro que antes levou a unha certa revisión ou marca mediante o comando

    %cvs update -r X

(isto é usado ⪚ polo ítem de menú Avanzado Actualizar para Marca/Data...). Neste caso, a marca no ficheiro é pegoñenta, &ie; as actualizacións non o levan para a revisión máis nova na galla. Se quer entregar revisións para a galla, deberá actualizar para a marca da galla antes de facer novas entregas.

With &cervisia;, it is quite easy to maintain a ChangeLog file that is compliant with the format laid out in the &GNU; coding guidelines. To use it, choose File Insert ChangeLog Entry.... If a file with the name `ChangeLog` exists in the toplevel folder of your sandbox, this file will be loaded and you have the possibility to edit it. To this end, at the top of the file, an entry with the current date and your user name (which can be configured as described in customize-general) is inserted. When you are finished the dialog can be closed by clicking OK, the next commit dialog you open will have the log message set to the message you last entered in the ChangeLog.

### Resolver conflitos

Poden acontecer conflitos sempre que teña feitas modificacións nun ficheiro que tamén teña sido modificado por outro desenvolvente. O conflito será detectado por &CVS; cando actualice o ficheiro modificado; &CVS; tentará nese instante fusionar as modificacións entregadas polo outro desenvolvente na súa copia local. A fusión fallará as modificacións do outro se sobrepoñen en parte do ficheiro coas súas, e o servidor &CVS; enviará unha mensaxe de erro.

Na vista principal de &cervisia;, os ficheiros con conflitos son indicados co texto "Conflito" na coluna de estado e cunha cor vermella. É traballo seu resolver estes conflitos antes de que poda entregar o ficheiro. &CVS; rexeitará a entrega que caisquer ficheiros con conflitos até que teñan sido editados. Desde a vista principal, pode resolver conflitos do xeitos tradicional: faga duplo-click no ficheiro en cuestión e edíteo co seu editor favorito.

&CVS; sinala as modificacións en conflito con marcas polo ficheiro, da seguinte maneira:

    <<<<<<<
    Modificacións na súa copia de traballo
    =======
    Modificacións no repositorio
    >>>>>>> numero_de_revisión

You should replace this whole block with the new merged version. Of course, you have a great amount of freedom when resolving a set of conflicts: for each conflict you can decide to take one of the two alternative versions. You can also decide that both approaches are broken and rewrite a whole routine or the complete file from scratch.

Fortunately, &cervisia; offers a nicer interface for handling these conflicts. This does not mean that you will never need to manually edit the files, but at least can eliminate the need to do so for the trivial conflict resolution. To use &cervisia;'s CVS Resolve dialog choose File Resolve... or right click the marked file and choose Resolve... from the context menu.

#### Unha ilustración do diálogo de resolución de &cervisia;

Unha ilustración do diálogo de resolución de &cervisia;

No nume do diálogo, verá A súa versión (A) do ficheiro no lado esquerdo e a versión no repositorio, A versión no repositorio (B), á dereita. As diferenzas entre ambas as dúas estarán sinaladas en vermello. Baixo estas dúas versión, poderá ver a Versión fusionada. A versión fusionada reflicte como irá quedar esa sección na súa copia de traballo se preme o botón Guardar.

Pode ir cara tras e diante entre os conflitos premendo << e >>. Abaixo, na parte do medio, pode ver que sección é a actualmente marcada. Por exemplo, `2 de 3` significa que está na segunda sección en conflito dun total de 3.

Agora pode decidir sección a sección que versión quer ter no ficheiro fusionado. Se preme A, escollerá a súa versión. Se preme B escollerá a versión no repositorio. Se preme A+B engadirá ambas as dúas versión, e a súa irá primeiro. B+A fai o mesmo, pero na outra orden: primeiro a versión do repositorio, e logo a súa.

Se non está satisfeito con nengunha destas versión, prema Editar para abrir un editor de texto onde poderá editar a sección. Cando remate, prema OK para voltar ao diálolo Resolución de CVS e continuar resolvendo conflitos. Verá a sección que acaba de editar na Versión fusionada, coas súas modificacións.

Para guardar as súas modificacións, sobrescribindo a versión da copia de traballo, prema Guardar. Lembre que isto guardará as escollas non só na versión que estexa a ver, senón todas as seccións no ficheiro. Se quer guardalo noutro ficheiro, prema Guardar como.... Prema Pechar para sair do diálogo. Se pecha sen guardar anter, as modificacións serán perdidas.

## Obter información acercca de ficheiros e criar parches

### Ollando as diferenzas entre revisións

Hai varios sitios en &cervisia; onde pode pedir unha fiestra que mostre as diferenzas entre revisións dun ficheiro:

- Na fiestra principal, pode escoller Vista Diferenzas co Repositorio (BASE).... Está baseado no comando `cvs diff` e móstralle as diferenzas entre a versión no seu borrador de traballo e a versión para a que actualizou por última vez (tamén coñecida como `BASE`). Isto é particularmente útil xusto antes de entregar un ficheiro, para poder escoller unha mensaxe de rexisto apropriada.

- Pode ver as diferenzas entre a versión no seu borrador de traballo e a versión na galla principal de desenvolvimento (tamén chamada `HEAD`) mediante Vista Diferenzas co repositorio (HEAD)....

- Pode ver as diferenzas entre as dúas últimas revisión do ficheiro escollido mediante Vista Última modificación....

- You can access the Difference to Repository (BASE)..., Difference to Repository (HEAD)... and Last Change... menu items from the main view context menu, by right-clicking the file you want to view.

- No diálogo que se mostra cando envía un conxunto de ficheiros, pode pedir unha fiestra de diferenzas escollendo o nome dun ficheiro na lista de selección, tanto facendo duplo-click nel como premendo Intro. Isto é similar a usar Vista Diferenzas co Repositorio (BASE)... co mesmo ficheiro na vista principal.

- No diálogo de Examinar o rexisto, pode marcar dúas revisións dun ficheiro e pedir un diálogo que mostre as diferenzas entre ambas as dúas (consulte browsinglogs).

Como é de esperar, &cervisia; non se limita a emborcar a saída do comando `diff` na súa terminal, senón que lle mostra unha vista gráfica como se ve en screenshot-log.

#### Unha ilustración do diálogo de diferenzas de &cervisia;

Unha ilustración do diálogo de diferenzas de &cervisia;

O texto no diálogo é unha variante mellorada do que dá o comando diff coa opción `-u`. Pode ver as versión diferentes en dúas fiestras, coas liñas dispostas de tal xeito que poda facer unha comparación lado-por-lado. Isto significa que onde se engadise ou eliminase texto, a fiestra respectiva mostra liñas vacías co marcador `+++++` á esquerda. En todos os casos, pode ver o número de liña na coluna da esquerda.

Na segunda coluna da fiestra da direita, pode ver que tipo de modificación foi feita. Os tipos posíbeis son `Engadido`, `Eliminado` e `Modificado`. As liñas respectivas están coloridas de azul, verde e vermello. Móstrase unha imaxe comprimida dos marcadores de cores no centro do diálogo. Deste xeito, pode ter unha visión global rápida das modificacións no ficheiro. Tamén pode usar a posición das rexións coloridas na imaxe comprimida como unha pista cando use as barras de desprazamento.

Polo xeral, as barras de desprazamento das fiestras dereita e esquerda están sincronizadas, &ie; se despraza na fiestra da esquerda, a da dereita desprazarase o mesmo. Pode alterar isto sinalando a opción Sincronizar as barras de desprazamento.

Para máis información acerca de como personalizar o diálogo de diferenzas, consulte customize-diff.

### Criar parches

En ocasións ha querer oferecer as súas modificacións para revisión, antes de entregalas, ou se non ten aceso de escrita ao repositorio (polo que non pode facer entregas). &CVS; oferece formatos estándar para partillar as modificacións na súa copia de traballo, para que outras persoas podan revisar as súas modificacións, comprobalas na súa copia de traballo e aplicalas ao repositorio &CVS;. Un ficheiro que conteña estas diferenzas é o denominado parche, e é xerado polo comando `cvs diff`, do mesmo xeito que as diferenzas en diff. Compartir parches no canto de conxuntos de ficheiros requere menos ancho de banda, e os parches son máis faceis de xestionar, xa que pode enviar un só parche coas diferenzas de varios ficheiros das fontes.

&cervisia; gives you access to this feature by choosing Advanced Create Patch Against Repository....

The Create Patch Against Repository... action creates a patch with all modifications in all files in your working copy (sandbox) against the `BASE` repository. Therefore, the selection of files in the main view does not affect the patch that will be generated.

Another possibility is to select one file in the main view and choose Browse Log... from the View menu or right click the marked file and choose Browse Log... from the context menu, in order to open the Browse log dialog. Now, select the version you want to create a patch against, as revision "A" and press the button Create Patch.... This will generate a patch with the differences between the marked file in your working copy and the version selected as revision "A".

Antes de xerar o parche, &cervisia; mostra un diálogo que lle permite configurar o formato de saída.

#### Unha ilustración do diálogo de parches de &cervisia;

Unha ilustración do diálogo de parches de &cervisia;

Formato de saída

- Hai tres formatos de saída disponíbeis:

  Normal: un formato que pode ser usado para que o editor ed faga automaticamente outra copia do ficheiro vello contra o novo ficheiro. Neste formato os caracteres < e > sinalas as modificacións e non hai información de contexto.

  Unificado: o formato máis usado para partillar os parches. Este formato usa liñas de contexto ademais dos números de liña para rexistar as diferenzas. Isto fai que o proceso de aplicar os parches sexa máis robusto. Este formato mostra as diferenzas dun xeito compacto e lexíbel, cun cabezallo para cada ficheiro involucrado, e seccións separadas (chunks) para cada diferenza. As liñas de contexto disponíbeis facilitan o ler as modificación. No formato unificado, os caracteres + e - sinalan as modificacións.

  Contexto, que mostra a mesma información que no formato unificado, pero dun xeito menos compacto. Neste formato, os caracteres ! sinalan as modificacións.

Número de liñas de contexto:

- Indique aquí o número de liñas de contexto para os formatos unificado e contexto. Esta opción non está disponíbel para o formato normal, xa que este non rexita esta información. Máis información de contexto facilita a leitura da saída bruta, e fai máis precisa a aplicación do parche, pero aumenta o tamaño do parche. Recoméndase usar polo menos dúas liñas de contexto para un funcionamento correcto do parche.

Opcións a ignorar

- Indique aquí as modificacións que non deben ser consideradas como diferenzas ao xerar o parche.

Tras indicar o formato de saída, &cervisia; xerará o parche e mostrará o diálogo Guardar como. Indique neste diálogo o nome e localización do ficheiro.

### Visualización dunha vista anotada do ficheiro

Mediante o comando `cvs annotate`, &CVS; fornece a posibilidade de ollar - para cada liña do ficheiro - quen foi a última persoa en modificar a liña. Esta vista pode ser útil para adiviñar que introduciu unha modificación no comportamento do programa ou a quen se lle debe perguntar acerca dalgún cambio ou erro no código.

&cervisia; gives you access to this feature, but it further enriches the information in an interactive way. You obtain an annotate view by choosing View Annotate.... Another possibility is to press the button Annotate in the Browse log dialog, in which you can select which version of the file you want to display. In screenshot-annotate you can see a screenshot of the dialog.

#### Unha ilustración do diálogo de anotacion de &cervisia;

Unha ilustración do diálogo de anotacion de &cervisia;

In the annotate dialog, you see in a window the latest version of the selected file (or the revision "A" version, in case you launched the annotate dialog from the Browse log dialog). In the columns before the text, you get some information related to the latest change in each line. In the first column the line number is displayed. In the second column you see the name of the author and revision number. Finally, in the third column you see the actual content of that line.

En consecuencia, cando unha liña lle pareza extrana ou pense que provoque un erro, poderá saber imediatamente quen é o responsábel de tal liña. Pero non só iso, tamén poderá saber por que foi modificada tal liña. Para isto, mova o rato sobre o número de revisión. Entón aparecerá unha axuda que mostrará a mensaxe de rexisto e a data da modificación.

### Examinar os rexistos do &CVS;

When you mark one file in the main view and choose Browse Log... from the View menu or right click the marked file and choose Browse Log... from the context menu, the CVS Log dialog is shown (if you mark more than one, nothing happens, as &cervisia; can only generate and parse the log for one file at a time). This dialog offers functionality that is beyond viewing the file's history. Using it as a version browser you can:

- Ver a revisión, autor, data, galla, mensaxe de entrega, e marcas para cada versión do ficheiro sinalado.

- Ver unha representación gráfica en árbore da ramificación e marcación do ficheiro.

- Ver calquer versión do ficheiro sinalado (coa aplicación por omisión).

- Ver unha vista anotada de calquer versión do ficheiro sinalado

- Ver as diferenzas entre calquer par de versións do ficheiro sinalado, incluíndo pares coa copia actual de traballa do ficheiro.

- Criar parches que conteñan as diferenzas entre calquer par de versións dos ficheiro sinalado, incluíndo pares coa versión actual de traballo do ficheiro sinalado.

#### Unha ilustración do diálogo de examinar os rexistos de &cervisia;

Unha ilustración do diálogo de examinar os rexistos de &cervisia;

Pode escoller consultar o historial tal como é obtido do comando `cvs log` (Resultado do CVS), como unha Árbore, ou como unha Lista. Por suposto, o que escolla é un asunto de gustos e dependerá da información na que estexa interesado. A árbore é unha representación intuitiva do que foi feito en diferentes gallas polos autores. Como axudas, poderá ver as mensaxes de rexisto correspondentes. A lista pola súa natureza é linear e, polo tanto, non dá unha visión imediata das gallas; aliás, concéntrase noutra información relevante, a data de cada modificación ao ficheiro e a primeira parte da mensaxe de rexisto. A información de saída do &CVS; é completa, pero longa, e difícil de ler. Para aliviar este problemas, ten a capacidade de procurar o texto na saída do &CVS;, premendo no botón Procurar....

To obtain more information about a certain revision, you can click on it either in the list or the tree view. The fields in the middle of the dialog are then filled with the complete information provided by `cvs log`. You can mark two revisions, called "A" and "B", which are relevant if you make use of further features provided by the buttons. Revision "A" can be chosen with the left mouse button, revision "B" with the middle one. In the list view, you can also navigate with with your cursor keys. In order to mark revisions "A" and "B", use the shortcuts &Ctrl;A, &Ctrl;B, respectively. Using the CVS Output view, you can click on the Select for revision A and Select for revision B to mark the revisions.

Se preme o botón Anotar, mostrarase un diálogo que mostrará o texto do ficheiro pertencente á revisión marcada como "A". Cada liña estará prefixada con información acerca de quen a editou por última vez, e en que revisión o fixo. Pode obter máis información acerca de como ver as versións anotadas en annotate.

Se preme no botón Diff, farase unha chamada ao comando `cvs diff` e obterá un diálogo no que se mostrarán todas as modificacións entre as dúas revisións marcadas. Se marca a revisión "A" pero non a "B", &cervisia; xerará as modificacións entre a versión do ficheiro sinalada como revisión "A" e a copia de traballo do ficheiro. Isto permítelle ver as diferenzas entre a súa versión do ficheiro e calquer versión disponíbel no &CVS;. Para simplificar o ver as modificacións, son usadas diferentes cores para marcar as liñas que foron engadidas, eliminadas ou só modificadas. Pode obter máis información acerca da visualización das diferenzas en diff.

Se preme no botón Criar un parche..., mostrarase un diálogo no que pode indicar as opcións de formato aara xerar un ficheiro que conteña todas as modificacións entre as dúas revisións que están a ser mostradas. Se sinala a revisión "A" pero non a "B", &cervisia; xerará as diferenzas entre a versión do ficheiro sinalada como revisión "A" e a copia de traballo do ficheiro. Isto permítelle xerar un parche, ou ficheiro de diferenzas, entre a súa versión do ficheiro e calquer versión disponíbel no &CVS;. Tras configurar o formato do parche no diálogo, e premer OK, enviarase un comando `cvs diff` para xerar o ficheiro de diferenzas. Mostrarase un diálogo Guardar como. Indique o nome e localización do parche criado por &cervisia;, para poder guardalo. Pode obter máis información acerca de como criar parches, e das opcións de formato do parche en creatingpatches.

Se preme no boton Ver, &cervisia; obterá a revisión sinalada como "A" e mostraraa usando a aplicación por omisión para este tipo de ficheiro.

Prema no botón Pechar para abandonar o diálogo e voltar á vista principal.

Para xerar o rexisto que é a base para o diálogo Rexisto do CVS, &cervisia; usará o seguinte comando:

    cvs log nome do ficheiro

### Examinar o historial

If the used repository has logging enabled, &cervisia; can present you a history of certain events like checkouts, commits, tags, updates and releases. Choose History from the View menu, and &cervisia; will issue the command

    cvs history -e -a

Isto obte o ficheiro completo de rexisto desde o servidor, &ie; unha lista dos eventos de todos os usuarios e todos os módulos. Isto pode ser unha cantidade imensa de datos.

Agora pode ollar a lista de eventos, ordenados pola data. Na segunda coluna móstrase o tipo de evento:

- Obtención - O usuario na coluna "Autor" obtivo un módulo

- Marca - Un usuario usou o comando `cvs rtag`. Lembre que o uso de `cvs tag` (como fai o comando de &cervisia; Avanzado Marca/Galla...) non se rexista na base de datos do historial. Isto ten motivos históricos (consulte as FAQ de &CVS;).

- Publicación - Un usuario publicou un módulo. En realidade, este comando é moi pouco usado e de escaso valor.

- Actualización, Eliminado - Un usuario actualizou un ficheiro que foi eliminado no repositorio. En consecuencia, o ficheiro foi eliminado na súa copia de traballo.

- Actualizado, Copiado - Un usuario actualizou un ficheiro. Foi copiada unha nova versión na copia de traballo.

- Actualizado, Fusionado - Un usuario fixo unha actualización dun ficheiro. As modificacións na versión do ficheiro no repositorio foron fusionadas na súa copia de traballo.

- Actualizado, Conflitos - Un usuario fixo unha actualización dun ficheiro, e detectouse un conflito coas súas propias modificacións.

- Entrega, Modificado - Un usuario entregou un ficheiro modificado.

- Entrega, Engadido - Un usuario engadiu un ficheiro e entregouno.

- Entrega, Eliminado - Un usuario eliminou un ficheiro e entregouno.

#### Unha ilustración do diálogo de historial de &cervisia;

Unha ilustración do diálogo de historial de &cervisia;

Pode ordenar a lista con outros criterios premendo no cabezallo apropiado da lista. Para ordenar as entradas do historial nas que estexa interesado, hai varias opcións de filtrado que son activadas mediante opcións:

- Mostrar as entregas - mostranse as entregas

- Mostrar as obtencións - móstranse os eventos de obtención

- Mostrar as criacións de marcas - móstranse os eventos nos que se críe unha marca

- Mostrar outros eventos - mostra os eventos non incluídos nas anteriores opcións

- Só o usuario - mostra só ós eventos provocados por un certo usuario

- Só os ficheiros con nome que concorde con - filtra os nomes dos ficheiros cunha expresión regular

- Only folders matching - filters folder names by a regular expression

Os caracteres especiais das expresións regulares son:

- `x*` concorda con calquer número de aparicións do caracter `x`.

- `x+` concorda con unha ou máis aparicións do caracter `x`.

- `x?` concorda con cero ou unha aparicións do caracter `x`.

- `^` concorda co inicio da cadea.

- `$` concorda co final da cadea.

- `[a-cx-z]` concorda cun conxunto de caracteres, ⪚ neste caso o conxunto das letras a,b,c,x,y,z.

## Uso avanzado

### Actualizar para a Marca, Galla ou Data

As gallas dun módulo son versións paralelas do módulo. Un exemplo real do uso desta funcionalidade é a publicación dun proxecto de sóftware. Tras un lanzamento maior, haberá erros no código que deberán ser corrixidos, pero a xente ha querer engadir novas funcionalidades que polo xeral han introducir novos erros, facendo difícil manexar os anteriores. Para resolver este problema, &CVS; permítelle criar unha versión paralela, que chamaremos a "galla estábel de desenvolvimento", onde só poderán facerse correicións de erros, deixando a galla principal (HEAD) aberta para engadir novas funcionalidades.

As marcas son usadas para sinalar unha versión dun proxecto. &CVS; sinala unha versión de cada ficheiro cunha marca, polo que cando obteña ou actualice para unha marca específica, sempre obterá as mesmas versións dos ficheiros; polo tanto, ao contrario cas galla, as marcas non son dinámicas: non pode desenvolver unha marca. As marcas son úteis para sinalar publicacións, grandes mudanzas no código, &etc;

Cando estexa a desenvolver ou seguindo o desenvolvimento dun proxecto de sóftware, non ten necesariamente que traballar todo o tempo coa galla principal. Tras unha publicación, pode querer ficar durante un tempo coa versión publicada, para desfrutar da súa estabilidade, corrixir erros, traducir as fontes, &etc;. Para todo isto, terá que actualizar para a galla publicada. Todos os seus ficheiro serán actualizados para a última versión dos ficheiros en tal galla. Despois da actualización, todas as súas novas entregas serán enviadas para a nova galla.

Tamén, se quer facer un seguimento dun erro que foi notificado contra o lanzamento marcado anteriormente, &CVS; oferécelle a posibilidade de obter o sóftware como foi publicado, actualizando para esa marca. Ademais, se quer obter unha versión anterior do proxecto, pode actualizar a súa copia de traballo para unha data concreta. Isto pode ser útil se foi introducido un erro no proxecto entre dúas versión, e ten unha idea acerca de por onde. Cando actualice para unha data ou marce, as versións dos seus ficheiros serán as mesmas que as desa data específicas ou as que teñan esa versión.

Antes de actualizar para unha marca ou galla diferente, verifique que entregou todas as súas modificacións na galla na que está a traballar. Se non está preparado para entregar as súas modificación, pero non quer desfacerse delas, non se actualice para a nova galla, xa que pode perder as súas modificacións. Como alternativa, pode facer unha nova obtención, para traballar en paralelo con ambas as dúas versións.

#### Unha ilustración do diálogo de actualizar para a marca de &cervisia;

Unha ilustración do diálogo de actualizar para a marca de &cervisia;

Actualizar para a galla

- Select this option to update to a branch. Enter the name of the branch in the drop down text box (or press the Fetch List button to retrieve the list of branches from the &CVS; server, and select the one you want in the drop down list).

Actualizar para a marca

- Select this option to update to a tag. Enter the name of the tag in the drop down text box (or press the Fetch List button to retrieve the list of tags from the &CVS; server, and select the one you want in the drop down list).

Actualizar para a data

- Escolla esta opción para actualizar para a data. No campo de baixo, pode introducir unha ampla variedade de formatos de data. Un formato posíbel é `aaaa-mm-dd` onde `aaaa` é o ano, `mm` é o mes (en número) e `dd` é o día. Outras alternativas son as frases en inglés `yesterday` ou `2 weeks ago`.

De actualizarse para unha marca ou data faraas "pegoñentas", &ie; non poderá facer modificacións neses ficheiros (a non ser que a marca sexa unha marca de galla). Para voltar para a galla principal, use o ítem de menú Avanzado Actualizar a HEAD.

The command issued to update to a branch or tag is:

    cvs update -r marca

O comando usado para actualizar para unha data é:

    cvs update -D data

O comando usado para actualizar para a galla principal (HEAD) é:

    cvs update -A

### Marcar e Gallar

Aquí falaremos só dos aspeitos técnicos de facer marcas e gallas. Se só é un usuario, e non o administrador do repositorio, probabelmente nunca se atopará con este problema. Porén se é o seu proprio administrador, primeiro debera ler acerca dos aspeitos non técnicos que acompañan ás gallas, para ter unha idea do traballoso e propenso a erros que é manter diferentes gallas dun mesmo proxecto. O apéndice inclui algunhas referencias acerca deste tema.

Facer marcas é algo que fará polo xeral cando se publique, para que en calquer instante pode voltar ao estado do proxecto nalquela época. Ás marcas pónselles un nome que polo xeral é o do proxecto xunto cun número de versión. Por exemplo &cervisia; 1.0 está disponíbel na marce `CERVISIA_1_0`. &cervisia; obriga a cumplir as estritas regras de &CVS; acerca dos nomes válidos das marcas. Debe comezar cunha letra e pode conter letras, díxitos, trazos e trazos baixos.

Normalmente, ha querer marcar todo o proxecto (apesar de que &CVS; tamén lle permite marcar só un subconxunto). Para isto, sinale o cartafol superior na vista e escolla Avanzado Marca/Galla. Agora indique o nome da marca, prema Intro e xa está.

Criar unha galla non é moito máis difícil: No diálogo de marcas, sinale a opción Criar unha galla con esta marca. Tamén pode eliminar unha marca xa existente: Escolla Avanzado Eliminar a marca na vista principal.

Outro aspeito de facer gallas é a fusión das modificacións dunha galla na galla actual. Se vai facer isto, escolla Avanzado Fusionar.... Aparecerá un diálogo que lle dá dúas opcións:

Pode fusionar todas as modificacións feitas nunha galla para a galla actual. Neste caso, sinale a opción Fusionar a partir da galla e indique a galla desde a que queira fusionar. &cervisia; executará o comando

    cvs update -j galla

A outra posibilidade é que queira fusionar só as modificacións feitas entre dúas marcas dunha galla. Isto polo xeral acontece cando fusiona varias veces desde a mesma galla para o toro. Neste caso, sinale a opción Fusionar as modificacións e indique (na orden correcta) as dúas marcas relevantese. Isto xerará o comando

    cvs update -j marca 1 da Galla -j marca 2 da galla

### Uso de Vixilantes

Un vixilante é o nome da funcionalidade de &CVS; para a notificación aos usuarios do repositorio de caisquer modificacións nun ficheiro ou do inicio da edición dun ficheiro por parte dun desenvolvente. O uso dos vixilantes requere que o ficheiro ``$CVSROOT`/CVSROOT/notify` estexa correctamente configurado. Isto non se explicará aquí; se precisa máis información acerca da configuración desde o ponto de vista do administrador, lea un dos libros citados no apéndice.

O soporte principal dos vixilantes que ten &cervisia; son seis ítens de menú.

Para poder engadir un vixilante a un ou varios ficheiros, use Avanzado Engadir un Vixilante.... No diálogo que aparece, poderá escoller que se lle notifique calquer dos tipos de evento que soporta &CVS;. Por exemplo, se só quer que se lle notifique a entrega dun ficheiro, sinale as opcións Só e Entregas. Se quer que se lle notifique calquer evento relacionado cos ficheiros sinalados, sinale a opción Todos. O comando usado cando confirme este diálogo é

    cvs watch add -a commit nomes dos ficheiros

ou cunha opción similar, dependendo dos eventos que escollese vixiar.

Se perdeu o interese nalgúns ficheiros, pode eliminar os seus vixilantes para eles. Para isto, use Avanzado Eliminar o Vixilante.... No diálogo que aparece oferécense as mesmas opcións que no de engadir vixilantes. Cando confirme este diálogo, &cervisia; usará o comando

    cvs watch remove nomes de ficheiros

posibelmente cunha opción `-a` para os eventos escollidos.

Finalmente, pode obter unha lista da xente que está a vixilar ficheiros. Escolla Avanzado Mostrar os vixilantes. Con este ítem de menú acederá ao comando

    cvs watchers nomes de ficheiro

Co uso habitual de &CVS;, cada desenvolvente traballa por separado no borrador de traballo que obtivo. Cando desexe modificar algún ficheiro, só ten que abrilo e comezar a traballar nel. Ninguén máis saberá do seu traballo até que o ficheiro sexa entregado.

For some developer groups, this is not the preferred model of cooperation. They want to get notified about someone working on a file as soon as he starts with it. This can be achieved by some further &CVS; commands. Before you start editing a file, select it in &cervisia;'s main window and choose Advanced Edit Files. This will execute the command

    cvs edit nomes dos ficheiros

Isto enviará unha notificación a todos aqueles que teñan un vixilante `editar` neste ficheiro. Isto tamén o rexistrará como un editor do ficheiro. Pode obter unha lista de todos os editores dun ficheiro determinado usando Avanzado Mostrar os editores. Isto é equivalente ao comando

    cvs editors nomes dos ficheiros

An editing session is automatically ended when you commit the affected file. At that moment, an `unedit` notification gets sent out to all people who have registered a respective watch on the file. Of course, sometimes you may not want to commit the file, but abort the editing session and revert to the previous version of the file. This is done by using Advanced Unedit Files. Note that &cervisia; will not ask you for confirmation; that means if you use this menu item, all your work done since you used Advanced Edit Files will be lost. Precisely, &cervisia; uses the command line

    echo y | cvs unedit nomes dos ficheiros

So far, we have only discussed the case where edits and unedits are used voluntarily be the developers. In addition &CVS; supports a model which enforces the usage of these commands. The responsible command to switch to this model is `cvs watch on` which we will not explain further because it is mostly used by the administrator of the repository. However, the important point from the developer's point of view is that when the project enforces edits, working copies are checked out readonly. That means you cannot edit a file by default (unless you use tricks like `chmod`). Only when you use Advanced Edit Files, the file becomes writable. It is made read-only again when you commit the file or use Advanced Unedit Files.

A interface do editor de &cervisia; tamén o axudará doutro xeito cos proxectos que obriguen a usar vixilantes. Se iniciou un editor nun ficheiro só para leitura facendo un duplo-click nel ou usando Ficheiro Editar, non será capaz de guardar as súas modificacións. Isto ten un motivo: Sempre que queira modificar un ficheiro, antes debe executar `cvs edit`, para que toda a xente que estexa a vixiar o ficheiro obteña unha notificación conforme está a traballar nel.

Neste caso, é recomendábel sinalar a opción Configuración Notificar automaticamente candocomeze a editar se é necesario. Agora, sempre que edite un ficheiro facendo duplo-click nel, &cervisia; executará `cvs edit` antes de lanzar o editor. Entón poderá editar o seu ficheiro como sempre. Cando remate co seu traballo, entregue os seus ficheiros, e os ficheiros entregados serán só para leitura de novo.

### Bloqueo

O modelo de desenvolvimento seguido normalmente cando se usa &CVS; é chamado obtencións sen reserva. Cada desenvolvente ten o seu borrador de traballo onde pode editar ficheiros como lle prouba. Cando use as funcionalidades de vixilancia - como `cvs edit`, varios desenvolventes poden traballar á vez nos ficheiro. As modificacións feitas por outros desenvolventes serán fusionadas no seu borrador local ao actualizar.

Outros sistemas de control de versións, como RCS e SourceSafe usan un modelo diferente. Cando un desenvolvente desexa editar un ficheiro, débeo trancar. Un ficheiro só pode ser trancado por un desenvolvente á vez. Cando remate de editar o ficheiro, retirase o bloqueo. Por unha banda, con este modelo nunha poden acontecer conflitos. Aliás, dous desenvolventes non poden traballar no mesmo ficheiro á vez, aínda que as súas modificacións non se afecten unhas ás outras. Isto pode ser un atranco. Non imos discutir as vanaxes organizativas de ambos os dous métodos, porén mencionaremos que aínda que &CVS; ten algún soporte para bloquear, non é o xeito preferido de traballar con &CVS;. Non debe usar esta funcionalidade a non ser que estexa certo de que o seu xestor do proxecto llo permite.

With &cervisia;, you lock files as follows. Select the desired files in the main view. Then choose Advanced Lock Files. This runs the command

    cvs admin -l nomes dos ficheiros

The reverse effect is achieved by using Advanced Unlock Files. This runs the command

    cvs admin -u nomes dos ficheiros

## Personalización de &cervisia;

&cervisia; can be customized in various ways to your needs and preferences. Some options which you may want to change regularly are directly available in the Settings menu.

### Xeral

User name for the change log editor:

- Whenever you use the menu item File Insert ChangeLog Entry..., a new ChangeLog entry is generated with the current date and your username. Normally, it is considered good style to insert your full name and your email address into each of your ChangeLog entries. &cervisia; automatically adds the full name and email address entered here.

Path to CVS executable, or 'cvs':

- Aquí pode indicar o nome (ou rota) do programa de liña de comandos `cvs`. Por omisión, &cervisia; usará o executábel de &CVS; que se atope na súa `$PATH`.

### Visor de diferenzas

Número de liñas de contexto no diálogo das diferenzas:

- Para o diálogo de diferenzas, &cervisia; usará a opción `-U` co comando `diff`. Isto permite que `diff` só mostre un número limitado de liñas arredor de cada rexión con diferenzas (liñas de contexto). Aquí pode indicar o argumento da opción `-U`.

Opcións adicionais para o "cvs diff":

- Aquí pode indicar argumentos adicionais para o comando `diff`. Un exemplo popular é `-b` que permite que `diff` ignore as mudanzas na cantidade de espazos en branco.

Ancho do tabulador no diálogo de diferenzas:

- No diálogo de diferenzas, as tabulacións presentes no seu ficheiro ou na saída do comando `diff` son expandidas para un número fixo de espazos. Por omisión, cada tabulación é remprazada por oito espazos, pero aquí pode indicar un número diferente.

Interface externa para "diff":

- Cando use calquer das funcións que mostran o diálogo de diferenzas, como Vista Diferenzas co Repositorio..., &cervisia; chamará a súa interface interna de diff. Se prefere unha diferente, como &kompare;, TkDiff, ou xxdiff, indique aquí o seu nome e rota.

### Estado

Ao abrir un borrador de traballo desde un repositorio remoto, inicia un comando Ficheiro->Estado automaticamente

- Se sinala esta opción, o comando Ficheiro Estado será iniciado automaticamente cando abra un borrador remoto. Este comando pode precisar algún tempo e tamén precisa dunha conexón co servidor dos repositorios remotos (o que o fai inusábel sen conexón).

Cando abre un borrador de traballo desde un repositorio local, inicia automaticamente un comando Ficheiro->Estado

- Se sinala esta opción, iniciarase o comando Ficheiro Estado sempre que abra un borrador local.

### Avanzado

Tempo tras o que aparece un diálogo de progreso (en ms):

- Case todos os comandos de &CVS; iniciados nun borrador de traballo que pertenza a un repositorio remoto precisan dunha conexón ao servidor &CVS;. Isto está afectado por atrasos na conexón de rede ou por unha carga alta no servidor. Por este motivo, cos comandos como Vista Diferenzas co Repositorio... &cervisia; abre un diálogo que indica que o comando aínda está en execución e que lle permite cancelalo. Ademais, este diálogo é usado para mostrarlle as mensaxes de erro procedentes do &CVS;. Xa que este diálogo pode ser molesto tras un tempo, só se mostra pasado un certo tempo, 4 segundos por omisión. Aquí pode modificar este valor.

Nivel de compresión por omisión:

- O cliente `cvs` comprime os ficheiros e parches cando son transferidos pola rede. Coa opción da liña de comandos `-z`, pode escoller o nível de compresión. Pode facer que &cervisia; use esta opción configurando aquí o nível. O valor que indique aquí será usado só como predeterminado; hai unha opción para cada repositorio disponíbel en Repositorio Repositorios....

Usar un proceso novo do axente de ssh ou usar outro en execución

- Sinale esta opción se usa repositorios ext (↱), a shell remota &ssh; para comunicar cos repositorios e ssh-agent para xestionar as súas chaves.

### Appearance

Font for Protocol Window...

- Press this button to open the Select Font dialog, to set the font used in the protocol window (this is the window showing the output of the `cvs` client).

Font for Annotate View...

- Press this button to open the Select Font dialog, to set the font used in the annotate view.

Font for Diff View...

- Press this button to open the Select Font dialog, to set the font used in diff dialogs.

Cores

- Press the colored buttons to open the Select Color dialog, to set the color used for Conflict, Local change, or Remote change, in the main view or Diff change, Diff insertion, or Diff deletion, in &cervisia;'s built-in diff frontend.

Dividir a fiestra principal en horizontal

- A fiestra principal de &cervisia; polo xeral está dividida na vertical nunha parte no cume coa árbore de ficheiro e unha en baixo coa saída de &CVS;; opcionalmente, pode dispolas en horizontal.

## Apéndice

### Ficheiros ignorados

Na árbore de ficheiros principal, &cervisia; non mostra todos os ficheiros que realmente están ahí. Isto é similar ao que fai `cvs` e axuda a evitar a confusión que provoca o material non interesante como os ficheiros obxecto. &cervisia; tenta imitar o comportamente de `cvs` tanto como pode, &ie; obtén listas de cousas a ignorar das seguintes fontes:

- Unha lista estática de entradas que inclúe cousas como `*.o` e `core`. Para máis detalles, consulte a documentación de &CVS;.

- O ficheiro ``$HOME`/.cvsignore`.

- A variábel de entorno `$CVSIGNORE`.

- O ficheiro `.cvsignore` do cartafol correspondente.

O propio `cvs` procura entradas en ``$CVSROOT`/CVSROOT/cvsignore`, pero este é un ficheiro no servidor, e &cervisia; debe ser quen de inicarse sen conexón. Se está a traballar cun grupo que prefere usar unha lista de elementos a ignorar localizada no servidor, probabelmente sexa boa idea votarlle un ollo aos padróns que estexan listados aló e copialos no ficheiro `.cvsignore` do seu cartafol persoal.

### Información adicional e soporte

- &CVS; comes with a complete set of documentation in the form of info pages, known as "The Cederqvist". If it is properly installed, you can browse it by typing in `info:/cvs` into the locationbar of &konqueror;, or you can just choose Help CVS Manual in &cervisia;. An on-line &HTML; version of the Cederqvist is available on the web.

  Dado que este libro é mantido á vez que &CVS;, normalmente é a referencia máis ao día; porén, recoméndase considerar outra documentación para aprender a usar &CVS;, en particular o seguinte.

- Karl Fogel has written the excellent book Open Source Development with &CVS;. About half of this book is about the development process of Open Source software. The other half is a technical documentation of &CVS;. Thankfully, the technical part of the book has been made freely redistributable under the GPL, so that you can download a &HTML; version of it. A list of errata is available on the web page mentioned above.

- Os problemas con &CVS; son discutidos nunha lista de correo específica para o tema.

- Hai un grupo USENET `comp.software.config-mgmt` adicado á xestión da configuración en xeral. &CVS; é só un tema marxinal deste grupo, porén pode ser de interese para discutir os méritos de distintos sistemas de control de versións en comparación con &CVS;.

- Finalmente, pero non menos interesante, hai unha lista de correo de baixo tránsito adicada a &cervisia;.

### Referencia dos comandos

#### O menú Ficheiro

Ficheiro Abrir un borrador de traballo...

- Abre un borrador de traballo na fiestra principal. Consulte mainscreen

File Recent Sandboxes

- Abre un dos borradores de traballo que fose usado recentemente.

Ficheiro Inserir un rexisto no ChangeLog...

- Abre o editor do ChangeLog, preparado para que poda engadir unha entrada nova coa data actual. Consulte committingfiles.

&Ctrl;U File Update

- Executa un "cvs update" dos ficheiros escollidos e muda o estado e números de revisión na lista. Consulte mainscreen.

F5 Ficheiro Estado

- Executa "cvs -n update" nos ficheiros escollidos e muda o estado e números de revisión na lista. Consulte mainscreen.

Fichero Editar

- Abre o ficheiro escollido no editor por omisión de &kde; para o tipo do ficheiro escollido.

Ficheiro Resolver...

- Abre un diálogo para o ficheiro escollido que lle permite resolver os conflitos de fusión que conteña. Consulte resolvingconflicts.

# Ficheiro Entregar...

- Permítelle entregar os ficheiros escollidos. Consulte committingfiles.

Ins File Add to Repository...

- Permítelle engadir ao repositorio os ficheiros escollidos. Consulte addingfiles.

Ficheiro Engadir como binario...

- Permítelle engadir ao respositorio como binarios os ficheiros escollidos (`cvs add `-kb``). Consulte addingfiles.

Del File Remove from Repository...

- Permítelle eliminar do repositorio os ficheiros escollidos. Consulte removingfiles.

Ficheiro Reverter

- Rexeita as modificacións locais que teña feitas nos ficheiros escollidos e reverte para a versión no repositorio (Opción `-C` de `cvs update`).

&Ctrl;Q File Quit

- Sae de &cervisia;

#### O menú Vista

Escape Vista Parar

- Aborta calquer subproceso que estexa a executar.

&Ctrl;L View Browse Log...

- Mostra o visor do rexisto das versións escollidas dos ficheiros. Consulte browsinglogs.

&Ctrl;A View Annotate...

- Mostra unha vista anotada do ficheiro escollido, &ie; unha vista onde para cada liña verá que autor a modificou por última vez. Consulte annotate.

&Ctrl;D View Difference to Repository (BASE)...

- Mostra as diferenzas entre o ficheiro escollido no borrador de traballo e a versión que obtivo a última vez que actualizou (BASE). Consulte diff.

&Ctrl;H View Difference to Repository (HEAD)...

- Mostra as diferenzas entre o ficheiro escollido no borrador de traballo e a versión que actualizou por última vez (HEAD). Consulte diff.

Vista Última modificación..

- Mostra as diferenzas entre a versión do ficheiro escollido a última vez que o actualizou (BASE) e a versión anterior. Consulte diff.

Vista Historial...

- Mostra o historial de &CVS; tal como é obtido do servidor. Consulte browsinghistory.

Vista Agochar todos os ficheiros

- Determina se só se deben mostrar os ficheiros na vista en árbore principal. Consulte mainscreen.

Vista Acochar os ficheiros non modificados

- Determina se os ficheiros descoñecidos e actualizados son acochados na vista principal en árbore. Consulte mainscreen.

Vista Acochar os ficheiros eliminados

- Determina se os ficheiros eliminados son acochados na vista principal en árbore. Consulte mainscreen.

Vista Acochar os ficheiros non pertencentes ao CVS

- Determina se os ficheiros fora do &CVS; son acochados na vista principal en árbore. Consulte mainscreen.

Vista Acochar os cartafoles vacíos

- Determines whether folders without visible entries are hidden in the main tree view. See mainscreen.

Vista Expandir a árbore de ficheiros

- Abre todas as pólas na árbore de ficheiros para que poda ver todos os ficheiros e cartafoles. Consulte mainscreen.

Vista Pechar a árbore de ficheiros

- Pecha todas as pólas na árbore de ficheiros. Consulte mainscreen.

#### O menú Avanzado

Avanzado Marca/Galla...

- Pon unha marca ou cria unha galla para os ficheiros escollidos. Consulte taggingbranching.

Avanzado Eliminar a marca...

- Eliminar unha marca dada dos ficheiros escollidos. Consulte taggingbranching.

Avanzado Actualizar para a Marca/Data...

- Leva os ficheiros escollidos a unha data ou marca específica, facéndoos pegañentos. Consulte updatingto.

Avanzado Actualizar a HEAD

- Leva os ficheiros escollidos para a revisión HEAD. Consulte updatingto.

Avanzado Fusionar...

- Fusiona ou unha galla dada ou as modificacións entre dúas marcas, nos ficheiros escollidos. Consulte taggingbranching.

Avanzado Engadir un Vixilante...

- Engade un vixilante para un conxunto de eventos nos ficheiros escollidos. Consulte watches.

Avanzado Eliminar o Vixilante...

- Elimina un vixilante dun conxunto de eventos sobre os ficheiros escollidos. Consulte watches.

Avanzado Mostrar os vixilantes

- Lista os vixilantes dos ficheiros escollidos. Consulte watches.

Advanced Edit Files

- Executa `cvs edit` nos ficheiros escollidos. Consulte watches.

Advanced Unedit Files

- Executa `cvs unedit` nos ficheiros escollidos. Consulte watches.

Avanzado Mostrar os editores

- Executa `cvs editors` nos ficheiros escollidos. Consulte watches.

Advanced Lock Files

- Bloquea os ficheiros escollidos. Consulte locking.

Advanced Unlock Files

- Desbloquea os ficheiros escollidos. Consulte locking.

Avanzado Criar un parche para o repositorio...

- Cria un parche a partir das modificacións no seu borrador de traballo. Consulte creatingpatches.

#### O menú Repositorio

Repositorio Criar...

- Abre un diálogo que lle permite criar un repositorio local novo. Consulte accessing-repository.

Repositorio Obter...

- Abre un diálogo que lle permite obter un módulo dun repositorio. Consulte checkingout.

Repositorio Importar...

- Abre un diálogo que lle permite importar un paquete para o repositorio. Consulte importing.

Repositorio Repositorios...

- Configura unha lista de repositorios que usa a miúdo e como aceder a eles. Consulte accessing-repository.

#### O menú Configuración

Configuración Mostrar barra de ferramentas

- Indica se debe mostrarse a barra de ferramentas.

Configuración Criar os cartafoles ao actualizar

- Determina se as actualizacións han criar cartafoles no borrador de traballo que non estivesen anter (Opción `-d` de `cvs update`).

Configuración Limpar os cartafoles vacíos ao actualizar

- Determina se as actualizacións eliminar os cartafoles vacíos no borrador de traballo (Opción `-P` de `cvs update`).

Configuración Actualizar recursivamente

- Determina se as actualizacións son recursivas (Opción `-r` de `cvs update`).

Settings Commit & Remove Recursively

- Determina se as entregas e borrados son recursivos (Opción `-r` de `cvs add`, ou `cvs remove`).

Configuración Notificar automaticamente cando comece a editar se é necesario

- Determina se `cvs edit` é executado automaticamente cando edita un ficheiro.

Configuración Configurar Atallos de Teclado...

- Abre un diálogo para configurar os atallos de teclado.

Configuración Configurar Barras de Ferramentas...

- Abre un diálogo para configurar as barras de ferramentas de &cervisia;.

Settings Configure &cervisia;...

- Abre un diálogo para personalizar &cervisia;.

#### A menú Axuda

&help.menu.documentation;

Apart from the standard &kde; Help menu items described above you will have this additional menu entry:

Axuda Manual de CVS

- Abre as páxinas info de &CVS; no sistema de axuda de &kde;.

## Recoñecimentos e Licenzas

Program copyright

- 1999-2002 &Bernd.Gehrmann; &Bernd.Gehrmann.mail;

- 2002-2008 the &cervisia; authors

Documentation Copyright 1999-2002 &Bernd.Gehrmann; &Bernd.Gehrmann.mail; and 2004 Carlos Woelz carloswoelz@imap-mail.com

mvillarinomvillarino@users.sourceforge.net

&underFDL; &underGPL;