# Manuale di &cervisia;

## Introduzione

&cervisia; è un'interfaccia grafica per sistemi di gestione delle revisioni. Il suo obiettivo è la gestione uniforme di &CVS;, con funzioni come la risoluzione di conflitti, visori per le differenze e la cronologia, stato dei file della copia di lavoro e gestione della maggior parte delle funzioni di controllo delle versioni. Puoi ottenere &cervisia; compilando il programma &cervisia; o installando il pacchetto &cervisia; fornito dalla tua distribuzione.

Un sistema per il controllo delle versioni è uno strumento per la registrazione, la gestione e la distribuzione di diverse versioni di file. &CVS; è uno strumento di controllo delle versioni. Permette di condividere le modifiche facilmente, poiché ogni sviluppatore può lavorare sulla propria copia locale contemporaneamente, senza paura di sovrascrivere le modifiche degli altri. Permette di recuperare le versioni passate (utile per scovare errori nel codice), la creazione di diramazioni (per lo sviluppo sperimentale o per il rilascio del codice) e altro ancora.

Il deposito principale di solito contiene un progetto collaborativo (commerciale o meno), ma puoi avvantaggiarti delle comode funzioni di controllo delle revisioni offerte da &CVS; anche per un progetto sviluppato esclusivamente da te. È facile configurare un deposito locale, e ti darà la possibilità di controllare quale modifica ha causato un errore, di annullare delle modifiche, di evitare perdite accidentali di informazioni, eccetera.

Il deposito contiene i file del progetto, e ciascuno sviluppatore ha una propria copia locale, detta copia di lavoro o sandbox; è possibile aggiungere le proprie modifiche al deposito principale (un processo chiamato deposito), o aggiornare la propria copia per includere le modifiche recenti di altri sviluppatori.

## Primi passi

### Accedere al deposito

In questa sezione mostreremo come usare le funzioni di base per il controllo delle versioni, usando &cervisia; per prelevare i moduli dal deposito e per lavorarci. Per farlo devi avere accesso ad un deposito come cliente, cioè qualcuno (probabilmente l'amministratore del deposito &CVS;) deve averti dato un account sulla macchina del server. In alternativa, puoi creare facilmente un deposito locale per i tuoi progetti.

Se hai in mente di sviluppare un progetto complesso, è una buona idea usare le funzioni di &CVS;, anche se ne fossi l'unico sviluppatore. Puoi apportare tutte le modifiche alla copia di lavoro ed usare &cervisia; (o altri strumenti per &CVS;) per aggiornare e depositare le modifiche. In questo modo potrai seguire le modifiche che hanno causato un errore, annullare delle modifiche, evitare la perdita accidentale di informazioni, eccetera. Usando &cervisia; è facile creare un deposito locale.

#### Creare un deposito locale

1. Apri la finestra di dialogo Crea un nuovo deposito (cvs init) scegliendo Deposito Crea.

2. Premi il pulsante ... per selezionare la cartella in cui creare il deposito, o inserisci il suo percorso nella casella di testo. Ad esempio, se vuoi mettere il deposito nella cartella `/home/utente` e chiamarla `cvsroot`, devi scrivere `/home/utente/cvsroot` nella casella, o selezionare la cartella `/home/utente` con il selettore dei file e aggiungere `cvsroot`.

3. Conferma premendo il pulsante OK. &cervisia; creerà e preparerà la cartella del nuovo deposito.

4. Ora puoi importare il tuo lavoro nel deposito, o semplicemente crearci una cartella per iniziare un modulo da zero.

&cervisia; fornisce un'interfaccia integrata per la gestione dei percorsi dei depositi, la finestra Configura l'accesso ai depositi. Per attivarla, usa la voce del menu Deposito Depositi.

#### Schermata della finestra di configurazione dell'accesso ai depositi di &cervisia;

Schermata della finestra di configurazione dell'accesso ai depositi di &cervisia;

Ci sono vari modi di accedere ad un deposito &CVS;. Si può raggiungere con l'autenticazione con password (:pserver:), con una shell sicura (usando :ext:), su un deposito locale (:local:), eccetera. Il formato dei percorsi dei depositi è (gli elementi facoltativi sono fra parentesi quadre):

`[:metodo:][[utente][:password]@]nome_host[:[porta]]/percorso/del/deposito`

Non tutti i campi (utente, password, nome_host e porta) sono sempre necessari per accedere al deposito. Le informazioni richieste dipendono dal metodo di accesso usato, che può essere categorizzato come segue:

Locale

- Il metodo di accesso locale è quello predefinito di &CVS;, per cui l'aggiunta del metodo :local: al percorso del deposito è facoltativa: basta inserire il percorso della cartella che contiene il deposito &CVS;, e sarà accessibile dal tuo computer, come `/percorso/del/deposito` o, più realisticamente, `/home/cvs`.

  Può anche essere fisicamente su un disco montato con NFS, ma questo non è un dettaglio importante. Se hai creato un deposito locale, la sua posizione è semplicemente il percorso della sua cartella.

↱

- Il percorso del deposito è qualcosa come `:ext:nome_utente@host.url.org:/percorso/del/deposito`.

  Questo metodo richiede di avere un account sulla macchina che fa da server (in questo esempio `host.url.org`) e di usare una shell remota per la comunicazione. Normalmente &CVS; usa ↱ per questo; ↱ è però da molto tempo considerato un programma non sicuro ed è stato sostituito ampiamente da &ssh;.

  Se vuoi usare &ssh;, devi impostare la variabile di ambiente `CVS_RSH` a &ssh; quando usi il client `cvs`. &cervisia; gestisce comodamente questa funzionalità.

  Nota che &cervisia; non può rispondere alle richieste di password dalla macchina server. Devi assicurarti che l'accesso remoto funzioni senza richiedere l'immissione di password. Con un semplice ↱ questo si può fare ad esempio creando un file `.rhosts` nella cartella Home con un elenco di host di fiducia (vedi la pagina di manuale di ↱).

  Con &ssh;, ciò si può fare copiando la chiave pubblica dal file `identity.pub` che si trova nella cartella `$`HOME`/.ssh/` del server. In questo caso la chiave non deve essere cifrata con una frase segreta, vedi la pagina di manuale di &ssh;.

pserver

- Il percorso del deposito sarà simile a `:pserver:nomeutente@host.url.org:/percorso/del/deposito`.

  Questo metodo accede al server con un protocollo speciale con un'autenticazione relativamente debole (`pserver` sta per autenticazione con password). Per poter usare un tale server, occorre un nome utente e una password fornita dal suo amministratore, e dovrai effettuare un accesso. Nota che il nome utente per l'autenticazione su &CVS; non corrisponde necessariamente al nome utente del sistema. Prima di accedere al server &CVS;, dovrai accedere al sistema.

  I progetti open source di solito danno accesso anonimo attraverso &CVS; ai propri file sorgente. Ciò significa che puoi facilmente ottenere gli ultimi sorgenti, modificarli e creare patch (differenze) rispetto al deposito senza chiedere un account &CVS;. Di norma, il &CVS; anonimo usa l'autenticazione con password (:pserver:), ed è un deposito di sola lettura, cioè non permette di depositare direttamente le modifiche.

Se conosci il metodo di accesso e il percorso del deposito, puoi aggiungerlo all'elenco dei depositi di &cervisia;:

### Aggiungere un nuovo deposito

1. Apri la finestra Configura l'accesso ai depositi scegliendo la voce Deposito Depositi dal menu.

2. Premi il pulsante Aggiungi per aprire la finestra Aggiungi deposito.

3. Inserisci il percorso del deposito nella casella di testo Deposito:. &cervisia; disabiliterà automaticamente le aree della finestra che non sono rilevanti al metodo di accesso inserito.

4. Se usi il metodo ext per accedere al deposito, inserisci la shell remota che vuoi usare (per esempio &ssh;) nella casella Usa shell remota (solo per depositi :ext:):.

5. Premi OK. Vedrai il deposito appena inserito nella lista dei depositi.

6. Se il metodo di accesso al deposito inserito è l'autenticazione con password (pserver), dovrai accedere prima di connetterti al server. Fai clic sul deposito dalla lista per selezionarlo, e premi il pulsante Accesso. Inserisci la password nella finestra che compare.

   Se hai inserito la password corretta, la colonna Stato del deposito pserver cambierà da Non autenticato ad Accesso avvenuto.

7. Premi OK per applicare le modifiche, o aggiungi un altro deposito alla lista. &cervisia; può tenere tutti i percorsi che vuoi.

### Importare un modulo nel deposito

In questa sezione si spiega come inserire un nuovo progetto nel deposito &CVS;. Se vuoi solo lavorare con un progetto preesistente che è già in un deposito, puoi passare alla prossima sezione.

Ci sono due modi di inserire un progetto in &CVS;:

- Importare i file e le cartelle in un nuovo modulo, usando la finestra di importazione di &cervisia;. I moduli sono le cartelle di massimo livello nell'albero delle cartelle del deposito &CVS;, e si usano per separare e organizzare i vari progetti nel deposito.

- Creare un modulo vuoto ed aggiungere i nuovi file a mano. Avrai più controllo, ma ci vorrà più tempo.

Tieni presente che &CVS; è stato progettato inizialmente per la gestione di file di testo. Molte funzioni, come la fusione di revisioni, la creazione di differenze in forma leggibile, eccetera, si eseguono solo su file di testo. Ciò non significa che non puoi usare &CVS; con file binari, ma solo che dovrai dire chiaramente a &CVS; se un file è binario o testuale. Se dichiari il tipo di file sbagliato, ci saranno problemi con le funzioni di &CVS; e potrebbero risultarne danni ai dati.

Importare un progetto (come un nuovo modulo) ha alcuni vantaggi: importerai tutti i file e le cartelle ricorsivamente, e il modulo sarà creato automaticamente. Questo rende più facile importare nel deposito grossi progetti preesistenti. Però ci sono anche alcuni svantaggi: non puoi usare la finestra di importazione di &cervisia; per aggiungere file ai moduli esistenti, e puoi importare i file solo come file binari o solo come testuali. Puoi aggirare questa limitazione creando una cartella con file di un solo tipo di file, o indicando lo schema del nome dei file da ignorare durante l'importazione.

Per esempio, supponiamo che il tuo progetto contenga solo file di testo ed alcune immagini PNG (file binari). Puoi dire a &CVS; di ignorare tutti i file che corrispondono al modello `*.png` durante l'importazione degli altri file come testo, oppure spostare i file delle immagini in un'altra cartella e poi importare gli altri file (come file di testo). In entrambi i casi, dovrai prelevare il modulo appena importato in una nuova copia di lavoro, copiarvi i file e le cartelle mancanti, aggiungere e depositare le modifiche ad essi nel deposito per completare il processo di importazione.

In alternativa, puoi aggiungere i file e le cartelle manualmente, creando un modulo vuoto. Per aggiungere al deposito un modulo vuoto, basta creare una nuova cartella nella cartella radice del deposito &CVS;. Il nome di questa cartella sarà il nome del modulo. Preleva il nuovo modulo vuoto, poi copia i file e le cartelle alla copia di lavoro, aggiungili al deposito e deposita le modifiche per inviarli sul deposito &CVS;.

#### Una schermata della finestra di importazione di &cervisia;

Una schermata della finestra di importazione di &cervisia;

Nelscreenshot-import puoi vedere la finestra che aiuta a importare un progetto come modulo. Per accedere alla finestra di importazione di &cervisia;, scegli la voce Deposito Importa del menu.

Deposito: co-repository

- Inserisci o seleziona dalla casella a cascata il nome del deposito &CVS;, noto anche come `CVSROOT`. Devi avervi accesso in scrittura, ed il deposito deve essere correttamente inizializzato. Se il deposito ancora non esiste, lo puoi creare scegliendo la voce del menu Deposito Crea.

  La casella a cascata mostra un elenco dei depositi che hai precedentemente inserito con la finestra Configura l'accesso ai depositi. Se il deposito è remoto, assicurati che l'autenticazione funzioni. Vedi accessing-repository per maggiori informazioni.

Modulo: co-module

- Il nome del modulo sotto cui sarà tenuto il progetto. Dopo l'importazione, il progetto potrà essere prelevato con questo nome. Vedi checkingout per maggiori informazioni. Questo è anche il nome della cartella corrispondente nel deposito.

Cartella di lavoro:

- La cartella di massimo livello del progetto che vuoi importare. L'importazione parte da questa cartella e scende ricorsivamente.

Tag del fornitore: co-vendortag

- Il tag del fornitore viene tradizionalmente usato per tener traccia dei sorgenti di terze parti. Se non hai un'idea migliore usa il tuo nome utente. Non è molto importante.

Tag di rilascio: co-releasetag

- Questo tag si usa tradizionalmente anche per l'importazione di versioni diverse di software di terze parti. Se non è questo che stai facendo, usa la parola `start` o una stringa `PIPPO_1_0`, dove `PIPPO` è il nome del progetto e `1.0` è il numero di versione del rilascio importato.

Ignora file:

- Se compili questo campo, viene data un'opzione aggiuntiva `-I `nomi_file`` al comando ``cvs` `import``. La voce viene interpretata come un elenco separato da spazi di schemi di nomi di file da ignorare. In generale, un modo più pulito e meno incline agli errori di controllare quali file vanno nel deposito è creare una cartella con solo i file che vuoi importare e partire da lì. Tuttavia, questa voce potrebbe essere utile se il progetto contiene dei file che sono normalmente ignorati da &CVS;, per esempio file dal nome `core`. In questo caso, basta inserire il carattere `!` in questo campo: ciò sostituisce lo schema dei file ignorati di &CVS;, vedi ignoredfiles.

Commento: co-comment

- Usa questo campo per registrare i commenti su origine, uso, sviluppo, eccetera dei file che stai importando.

Importa come file binari

- Se spunti questa casella, tutti i file vengono importati in modalità binaria, cioè si passa l'argomento `-kb` al comando ``cvs` `import``.

Usa la data dell'ultima modifica del file per la data di importazione

- Se spunti questa casella, la data di importazione sarà quella dell'ultima modifica del file invece della data di importazione effettiva.

Dopo aver compilato questo modulo e confermato i dati premendo il pulsante OK, si userà il comando &CVS; seguente:

    cvs -d deposito import -m "" modulo tag_fornitore tag_rilascio

### Prelievo di un modulo dal deposito

Ora che sei riuscito a definire il percorso del deposito, e hai importato i file iniziali, è ora di scaricare il modulo dal deposito &CVS;, creando la copia di lavoro.

Devi anche sapere il nome del ramo o tag che vuoi usare.

I rami (in inglese branch) di un modulo sono versioni parallele dello stesso. Un buon esempio concreto dell'uso di questa funzione è il rilascio di un progetto software. Dopo un rilascio importante, ci sono errori da correggere nel codice, ma gli sviluppatori vogliono anche aggiungere nuove funzioni. È difficile fare entrambe le cose allo stesso tempo, perché le nuove funzioni di solito introducono nuovi errori, rendendo difficoltosa la ricerca di quelli vecchi. Per risolvere questo dilemma, &CVS; permette di creare una versione parallela, che chiameremo il ramo del rilascio stabile, dove si possono solo fare correzioni, lasciando il ramo principale (HEAD) aperto all'aggiunta di nuove funzionalità.

I tag (etichette) si usano per indicare una particolare versione di un progetto. &CVS; timbra una versione di ciascun file con il tag, così se esegui un prelievo o un aggiornamento con un certo tag otterrai sempre le stesse versioni dei file; quindi, contrariamente ai rami, i tag non cambiano: non si può sviluppare su un tag. I tag sono utili per indicare i rilasci, grosse modifiche al codice, eccetera. Con l'uso dei tag, puoi facilmente riportare il progetto al suo stato precedente, per riprodurre o cercare errori, rigenerare il codice rilasciato, eccetera.

#### Schermata della finestra di prelievo di &cervisia;

Schermata della finestra di prelievo di &cervisia;

Deposito:

- Il nome del deposito &CVS;, noto anche come `$`CVSROOT``. La casella a cascata mostra un elenco dei depositi già inseriti con la finestra Configura l'accesso ai depositi. Se il deposito è remoto, assicurati che l'autenticazione funzioni. Vedi accessing-repository per maggiori informazioni.

Modulo:

- Il nome del modulo da prelevare. Se stai lavorando con un deposito esistente, puoi farti dare il nome dall'amministratore del sistema; se è il deposito di un progetto di software libero, puoi procurartene il nome dalle sue pagine Web. Se vuoi creare un nuovo modulo da zero con un deposito locale, puoi creare una nuova cartella nella sua cartella radice. Il nome della cartella sarà lo stesso del nome del modulo vuoto.

  In alternativa, se il deposito ha un file `$`CVSROOT`/modules`, puoi recuperare l'elenco dei moduli disponibili con il pulsante Recupera lista.

  Nota che è possibile prelevare una qualsiasi sottocartella del modulo senza scaricarne il resto: basta inserire anche il percorso della sottocartella.

Tag del ramo:

- Il nome del ramo o del tag che vuoi prelevare. Se lo lasci vuoto, &cervisia; preleverà il ramo principale (HEAD).

Cartella di lavoro:

- La cartella in cui va prelevato il modulo. Nota che la cartella di massimo livello della copia di lavoro ha il nome del modulo che stai prelevando, a meno che tu non dia un nome alternativo nella casella Preleva come:.

Preleva come:

- Ciò fa prelevare i file della copia di lavoro in una cartella alternativa sotto la cartella di lavoro invece che in una cartella con il nome del modulo.

Solo esportazione

- Se spunti questa casella, i file saranno esportati invece che prelevati. L'esportazione prende una copia dei sorgenti dal modulo senza le cartelle di amministrazione di &CVS;. Per esempio, l'esportazione si può usare per preparare il codice sorgente per un rilascio.

Prelievo ricorsivo

- Preleva ricorsivamente tutti i file e le cartelle.

### La schermata principale, con lo stato dei file e l'aggiornamento

Quando avvii &cervisia; e apri una copia di lavoro con File Apri copia locale, puoi vedere due aree principali nella sua finestra: quella in alto è una vista ad albero della copia di lavoro attuale, quella in basso è usata per mostrare i comandi &CVS; eseguita da &cervisia; per eseguire i compiti assegnati, oltre ai risultati che generano.

Come impostazione predefinita, &cervisia; non visualizza i file contenuti nelle sottocartelle, quindi dovrai fare clic sulle cartelle che vuoi vedere. Per visualizzare tutti i file della copia di lavoro, seleziona Visualizza Apri l'albero dei file. Per richiudere tutte le cartelle, usa Visualizza Chiudi l'albero dei file.

A seconda delle impostazioni specifiche dei singoli file `.cvsignore`, i file che normalmente non si vogliono includere nel deposito (come i file intermedi prodotti da un compilatore) non vengono visualizzati nella vista ad albero. Per ogni file puoi vedere il suo stato corrispondente. Nell'impostazione predefinita, dopo aver aperto la copia di lavoro, questo è Sconosciuto, perché &cervisia; rinvia il recupero delle informazioni finché non selezioni file e cartelle di cui vuoi aggiornare o visualizzare lo stato, e selezioni File Aggiorna o File Stato. In questo modo hai comunque un minimo di funzionalità disponibile anche se non hai una connessione permanente al server &CVS;.

#### Schermata della vista principale di &cervisia;

Schermata della vista principale di &cervisia;

I comandi nel menu File hanno normalmente effetto solo sui file selezionati. Puoi selezionare anche le cartelle. Ora scegli File Stato dal menu o premi F5. &cervisia; esegue:

    cvs update -n nomi_file

per avere informazioni sullo stato dei file selezionati. Nota che &cervisia; scende ricorsivamente nelle sottocartelle solo se hai impostato l'apposita opzione dal menu Impostazioni. A seconda dello stato dei file, vedrai ora una voce nella colonna Stato:

Modificato localmente

- Indica che hai modificato il file rispetto alla versione del deposito.

Aggiunto localmente

- Indica che il file non esiste nel deposito, ma solo nella copia di lavoro, e che deve essere aggiunto. L'inserimento effettivo nel deposito avverrà solo con il prossimo deposito delle modifiche.

Rimosso localmente

- Indica che il file va rimosso, ma che esiste ancora nel deposito. La rimozione effettiva avverrà solo con il prossimo deposito delle modifiche.

Richiede aggiornamento

- Viene mostrato quando c'è una nuova versione del file nel deposito, per esempio perché qualcuno ha depositato una modifica. Di solito vorrai aggiornare questo file per averne l'ultima versione nella copia locale.

Richiede patch

- Essenzialmente vuol dire la stessa cosa dello stato precedente; la differenza è che, all'aggiornamento, il server &CVS; trasferirà solo una patch invece che tutto il file.

Richiede fusione

- Indica che è necessaria una fusione della revisione del file della copia di lavoro con quella del deposito. Ciò succede di solito se hai fatto modifiche ad un file mentre qualcun altro ha depositato le proprie. Se scegli di aggiornare, le modifiche del deposito saranno fuse nel tuo file. In caso di conflitto (cioè se qualcun altro ha cambiato le stesse righe che hai cambiato tu) il nuovo stato sarà In conflitto.

Aggiornato

- Indica che il file è identico alla versione presente nel deposito.

In conflitto

- Indica che questo file ha ancora degli indicatori di conflitto. Forse prima hai aggiornato il file e non ne hai risolto i conflitti.

Non in CVS

- Indica che il file non è registrato nel deposito &CVS;. Se vuoi renderlo disponibile agli altri, devi aggiungerlo al deposito. Altrimenti, potresti aggiungerlo al file `.cvsignore`.

Adesso che hai una panoramica dello stato attuale di &CVS;, potresti voler fare un aggiornamento. Seleziona dei file (o la radice dell'albero delle cartelle, che equivale a selezionarli tutti), e scegli File Aggiorna (ovviamente, lo avresti potuto scegliere anche all'inizio della sessione). Adesso lo stato di alcuni file potrebbe cambiare. Di solito, i file che avevano lo stato Richiede patch o Richiede aggiornamento verranno aggiornati. Sono quindi possibili i seguenti nuovi elementi nella colonna di stato:

Aggiornato

- Indica che il file è stato aggiornato dal deposito.

Con patch

- Indica che il server &CVS; ha inviato una patch per questo file, e che è stata applicata correttamente. Se la patch non fosse riuscita a causa di un conflitto fra le tue modifiche e quelle che qualcun altro avesse inviato al deposito, lo stato sarebbe diventato In conflitto.

Potresti aver notato che a seconda dello stato del file, la sua riga assume un colore diverso. I colori sono associati agli stati più o meno secondo la loro priorità. Per esempio, un file in conflitto è indicato in rosso per indicare che devi risolvere un conflitto prima di poter continuare a lavorare col file. Se la cartella contiene molti file, potresti comunque perdere la vista complessiva. Per sapere rapidamente quali file hanno uno stato non normale, basta fare clic sull'intestazione della colonna dello Stato. L'elenco dei file viene quindi ordinato per priorità, in modo da avere tutte le informazioni importanti in cima all'elenco. Per tornare all'ordine alfabetico, fai clic sull'intestazione della colonna Nome del file.

## Lavorare coi file

Tutte le funzionalità di &CVS; di uso comune sono direttamente disponibili nella vista principale di &cervisia;. I comandi di solito funzionano su più file alla volta, cioè tutti quelli attualmente selezionati. Se la selezione include delle cartelle, il significato dipende dalle Impostazioni, come configurate nel loro menu. Per esempio, se è selezionato Impostazioni Deposita e rimuovi ricorsivamente, e scegli File Deposita quando una cartella è selezionata, sono depositati tutti i file contenuti nella cartella o nelle sue sottocartelle. Altrimenti, sono depositati solo i file contenuti direttamente nella cartella.

### Schermata del menu contestuale di &cervisia;

Le azioni più comuni sono disponibili anche con un clic del &RMB; sui file della vista ad albero, con il menu contestuale; screenshot-popup mostra il menu contestuale della finestra principale di &cervisia;.

Puoi modificare un file facendoci doppio clic o selezionandolo e premendo &Enter;. Ciò fa partire l'applicazione predefinita che gestisce quel tipo di file (l'applicazione predefinita di ogni tipo di file è un'impostazione di &kde;). Se l'applicazione predefinita non è quella che vuoi, puoi fare clic con il &RMB; sul file e scegliere il sottomenu Modifica con, e selezionare una delle altre applicazioni adatte a quel tipo di file.

### Aggiungere i file

Aggiungere dei file a un progetto è un'operazione in due passi: primo, i file vanno registrati su &CVS;, cioè aggiunti al deposito. Ciò è necessario, ma non basta: per mettere effettivamente i file nel deposito, devi depositarli. Questo sistema ha un importante vantaggio: puoi depositare i file assieme alle modifiche di altre parti del progetto. Così facendo, si può vedere facilmente (per esempio nei registri dei depositi) che tutte queste singole modifiche sono parte di una serie coerente.

Perciò, indica tutti i file da aggiungere nella vista principale di &cervisia;. Quindi, seleziona File Aggiungi al deposito, o fai clic con il &RMB; e scegli Aggiungi al deposito. Apparirà la finestra Aggiungi a CVS, con un elenco dei file che hai selezionato, per richiedere conferma. Premi OK.

&cervisia; esegue un comando

    cvs add nomi_dei_file

Se l'operazione funziona, la colonna dello stato dovrebbe indicare Aggiunto al deposito per i file aggiunti.

&CVS; non è stato progettato per gestire le revisioni dei file binari. Per esempio, la fusione dei file binari normalmente non ha senso. Inoltre, a meno di impostazioni diverse, &CVS; espande certe parole chiave (per esempio la stringa `$Revision: 1.6 $`) quando si deposita un file. Nei file binari, queste sostituzioni possono rendere il file completamente inutilizzabile.

Per disattivare queste sostituzioni, dovresti depositare i file binari (o altri file, come PostScript o immagini PNG) con File Aggiungi file binario. Apparirà la finestra Aggiungi a CVS, con un elenco dei file binari che hai selezionato, per richiedere conferma. Premi OK.

&cervisia; esegue un comando

    cvs add -kb nomi_dei_file

### Eliminare i file

Come per l'aggiunta, la rimozione dei file si fa in due passi: primo, i file vanno indicati come da rimuovere selezionando File Rimuovi dal deposito, o facendo clic con il &RMB; sui file selezionati e scegliendo Rimuovi dal deposito dal menu contestuale. Apparirà la finestra Rimuovi da CVS, con un elenco dei file che hai selezionato, per richiedere conferma. Premi OK. &cervisia; dà il comando:

    cvs remove -f nomi_dei_file

Dopodiché, questa modifica della copia locale va depositata, eventualmente con altre modifiche apportate al progetto.

Il comando indicato funziona solo se il file è aggiornato. Altrimenti, riceverai un messaggio d'errore. Questo comportamento è la cosa giusta: se hai modificato un file rispetto alla versione nel deposito, o se qualcun altro ha fatto delle modifiche, è meglio prima controllare se vuoi scartarle davvero.

### Aggiungere e rimuovere le cartelle

Le cartelle sono gestite in modo fondamentalmente diverso dai file in &CVS;. Non sono sotto controllo di revisione, cioè non è possibile dire quali cartelle esistessero nel progetto a un certo momento. Inoltre, le cartelle non possono mai essere rimosse esplicitamente (a meno di non eliminarle direttamente nel deposito).

Per alleviare il problema, &CVS; segue la convenzione che una cartella non esiste se è vuota in una particolare revisione. Questa convenzione può essere applicata dando l'opzione `-P` ai comandi ``cvs` `update`` e ``cvs` `checkout``. Questa opzione può essere impostata con Impostazioni Elimina le cartelle vuote durante l'aggiornamento.

Una cartella può essere aggiunta al deposito selezionando File Aggiungi al deposito o facendo clic con il &RMB; e selezionando Aggiungi al deposito dal menu contestuale. Nota che, al contrario di quando si aggiungono file, l'aggiunta delle cartelle non richiede un deposito. &cervisia; dà il comando:

    cvs add nome_cartella

### Depositare i file

Quando hai fatto un certo numero di modifiche alla copia di lavoro, e vuoi che altri sviluppatori possano vederle, le depositi. Con un deposito, inserisci le tue versioni dei file modificati come nuove revisioni del deposito centrale. Un aggiornamento successivo da parte degli altri sviluppatori porterà le tue modifiche nella loro copia di lavoro.

Per depositare alcuni file, selezionali nella vista principale di &cervisia; e scegli File Deposita, o fai clic con il &RMB; sui file selezionati e scegli Deposita dal menu contestuale.

#### Schermata della finestra di deposito di &cervisia;

Vedrai una finestra che mostra in alto un elenco dei file selezionati, e un messaggio di registro delle modifiche in basso. &cervisia; aiuta in vari modi a trovare un messaggio di registro appropriato: per prima cosa, puoi fare doppio clic su uno dei file nell'elenco e premere &Enter; per vederne le modifiche. Inoltre, è presente un elenco dei messaggi di registro precedenti nella casella combinata. Infine, la finestra è integrata con l'editor dei file ChangeLog di &cervisia; descritto sotto. Quando hai finito di lavorare alla finestra, il comando

    cvs commit -m messaggio nomi_file

viene usato.

Un errore comune che potresti incontrare durante il deposito è Up-to-date check failed. Ciò indica che qualcuno ha depositato delle modifiche dall'ultima volta che hai aggiornato; o, più tecnicamente, che la tua revisione `BASE` non è l'ultima del suo ramo. In tal caso, &CVS; si rifiuta di fondere le modifiche nel deposito. La soluzione è aggiornare, risolvere eventuali conflitti e depositare di nuovo. Ovviamente, se stai lavorando a un progetto software, è buon senso controllare che il programma funzioni ancora dopo l'aggiornamento; dopotutto, potrebbero esserci delle interazioni negative tra le tue modifiche e le altre.

Un altre errore comune produce il messaggio Sticky tag 'X' for file 'X' is not a branch. Questo si presenta se un file che hai prima portato a una certa revisione o tag con il comando:

    $ cvs update -r X

(che viene per esempio usato da Avanzate Aggiorna a tag o data). In tal caso, il tag del file diventa permanente, cioè gli aggiornamenti successivi non fanno apparire l'ultima revisione del ramo. Se vuoi depositare altre revisioni al ramo, devi aggiornare il file ad esso prima di fare ulteriori depositi.

Con &cervisia; è facile mantenere un file ChangeLog conforme al formato stabilito dalle linee guida di programmazione &GNU;. Per usarlo, scegli File Inserisci voce in ChangeLog. Se nella cartella di massimo livello della copia di lavoro esiste un file chiamato `ChangeLog`, verrà caricato e sarà data la possibilità di modificarlo. Allo scopo, in cima al file, viene inserita una voce con la data odierna e il tuo nome utente (che può essere configurato come descritto nelcustomize-general). Quando hai finito, puoi chiudere la finestra facendo clic su OK; il prossimo deposito che aprirai avrà il messaggio di registro impostato all'ultimo messaggio inserito in ChangeLog.

### Risolvere i conflitti

I conflitti possono presentarsi ogni qualvolta vengono fatte modifiche a un file che è stato modificato anche da altri. Il conflitto viene rilevato da &CVS; all'aggiornamento del file; &CVS; prova quindi a fondere le modifiche depositate dagli altri nella copia di lavoro. La fusione non riesce se le tue modifiche e quelle degli altri si sovrappongono, e &CVS; produce un messaggio d'errore.

Nella vista principale di &cervisia;, i file con conflitti sono indicati con In conflitto nella colonna dello stato e con un colore rosso. È adesso compito tuo risolvere questi conflitti prima di depositare il file. &CVS; si rifiuterà di depositare file con conflitti finché non saranno modificati. Dalla vista principale puoi ovviamente risolvere i conflitti nel modo tradizionale: fai doppio clic sul file in questione e modificalo nel tuo editor preferito.

&CVS; indica le modifiche in conflitto mettendo degli indicatori nei file, così;

    <<<<<<<
    Modifiche nella tua copia di lavoro
    =======
    Modifiche presenti nel deposito
    >>>>>>> numero_revisione

Devi cambiare l'intero blocco con la nuova versione fusa. Naturalmente, hai molta libertà nella risoluzione dei conflitti: puoi decidere per ciascun conflitto quale delle due alternative mantenere. Puoi anche decidere che entrambe le alternative sono inadeguate, e riscrivere l'intera sezione o l'intero file daccapo.

Fortunatamente, &cervisia; ha un'interfaccia più comoda per gestire questi conflitti. Non vuol dire che non dovrai mai modificare a mano i file, ma può almeno eliminarne la necessità per risolvere i conflitti più semplici. Per usare la finestra Risolvi CVS di &cervisia; scegli File Risolvi o fai clic con il &RMB; sul file selezionato e scegli Risolvi dal menu contestuale.

#### Schermata della finestra di risoluzione dei conflitti di &cervisia;

Schermata della finestra di risoluzione dei conflitti di &cervisia;

In cima alla finestra, vedi La tua versione (A) del file sul lato sinistro e l'Altra versione (B) sul lato destro. Le differenze sono indicate in rosso. Sotto le due versioni puoi vedere la Versione fusa. Quest'ultima riflette cosa sarà la tua copia di lavoro se premi il pulsante Salva.

Puoi andare avanti e indietro tra le sezioni in conflitto con << e >>. In basso e in mezzo alla finestra puoi vedere quale sezione è attualmente selezionata. Per esempio, 2 di 3 indica che sei alla seconda sezione con differenze su tre totali.

Adesso puoi decidere, sezione per sezione, quale versione vuoi avere nel file fuso. Premendo A, selezioni la tua versione; con B, selezioni quella del deposito. Premendo A+B saranno aggiunte entrambe, e la tua verrà per prima. B+A fa la stessa cosa, ma in ordine opposto.

Se non sei soddisfatto di nessuna di queste possibilità, premi Modifica per aprire un editor di testo semplice dal quale modificare la sezione. Quando hai finito di modificarla, premi OK per tornare alla finestra Risolvi CVS e riprendere a risolvere i conflitti. Vedrai la sezione appena modificata nella Versione fusa, con le tue modifiche.

Per salvare le modifiche, sovrascrivendo la versione della copia di lavoro, premi Salva. Nota che ciò salverà le modifiche non solo della sezione che stai attualmente visualizzando, ma di tutte le sezioni nel file. Se vuoi salvare in un altro file, premi Salva come. Premi Chiudi per uscire dalla finestra. Se chiudi la finestra senza salvare, le modifiche andranno perse.

## Ottenere informazioni sui file e creare patch

### Esaminare le differenze tra le revisioni

Ci sono molti modi per chiedere a &cervisia; di mostrare una finestra con le differenze tra due revisioni di un file:

- Nella vista principale, puoi scegliere Visualizza Confronta col deposito (BASE). Questo si basa sul comando ``cvs` `diff``, e mostra le differenze tra la versione nella copia di lavoro e l'ultima versione ottenuta da un aggiornamento (nota anche come `BASE`). È utile soprattutto appena prima di depositare un file, per decidere un messaggio di registro appropriato.

- Puoi vedere le differenze tra la versione nella copia di lavora e quella nel ramo di sviluppo principale (noto anche come `HEAD`) selezionando Visualizza Confronta col deposito (HEAD).

- Puoi esaminare le differenze tra le ultime due revisioni del file selezionato scegliendo Visualizza Ultima modifica.

- Puoi accedere agli elementi del menu Confronta col deposito (BASE), Confronta col deposito (HEAD) e Ultima modifica dal menu contestuale della vista principale, facendo clic con il &RMB; sul file che vuoi visualizzare.

- Nella finestra mostrata quando depositi una serie di file puoi richiedere una finestra delle differenze selezionando il nome di un file nell'elenco di selezione, sia facendoci doppio clic o premendo &Enter;. È molto simile a usare Visualizza Confronta col deposito (BASE) con lo stesso file nella vista principale.

- Nella finestra Sfoglia registro puoi selezionare due revisioni di un file e richiedere una finestra che mostra le differenze tra di loro (vedi browsinglogs).

Come forse ti aspettavi, &cervisia; non scarica semplicemente il risultato del comando `diff` sul terminale, ma produce una vista grafica come quella vista nelscreenshot-log.

#### Schermata della finestra delle differenze di &cervisia;

Schermata della finestra delle differenze di &cervisia;

Il testo nella finestra è una variante migliorata del testo dato dal comando `diff` con l'opzione `-u`. Puoi vedere le versioni nelle due finestre, con le righe disposte in modo da poter fare un confronto fianco a fianco. Ciò vuol dire che dove è stato aggiunto o rimosso del testo la finestra relativa mostra delle righe vuote con l'indicatore +++++ sul lato sinistro. Da ogni altra parte, nella colonna sinistra, puoi vedere il numero di ogni riga.

Nella seconda colonna della finestra destra puoi vedere quale tipo di modifica è stata fatta. I tipi possibili sono Aggiungi, Elimina e Modifica. Le righe sono rispettivamente evidenziate in blu, verde e rosso. Al centro della finestra c'è un'immagine compressa degli evidenziatori; in tal modo, puoi avere una panoramica delle modifiche complessive fatte sul file. Puoi anche usare la posizione delle regioni colorate nell'immagine compressa per orientarti quando usi le barre di scorrimento.

Normalmente le barre di scorrimento delle finestre a sinistra e a destra sono sincronizzate, cioè se scorri quella a sinistra, quella di destra viene fatta scorrere allo stesso modo. Puoi cambiare questo comportamento spuntando la casella Sincronizza le barre di scorrimento.

Per avere informazioni su come personalizzare la finestra delle differenze, vedi customize-diff.

### Creare patch

A volte si vuole sottoporre le proprie modifiche a revisione prima di depositarle, o non si ha accesso in scrittura al deposito (e quindi non si può depositare). &CVS; ha dei formati standard per condividere le modifiche nella copia di lavoro e applicarle al deposito &CVS;. Un file contenente queste modifiche è detto patch, e viene generato dal comando ``cvs` `diff``, come le differenze neldiff. Condividere patch invece che serie di file consuma meno spazio, e le patch sono più facili da gestire: puoi mandare un solo file patch contenente tutte le modifiche in più file sorgente.

&cervisia; dà accesso a questa funzionalità selezionando Avanzate Crea patch relativa al deposito.

L'azione Crea patch relativa al deposito crea una patch con tutte le modifiche di tutti i file nella copia di lavoro relativamente al deposito `BASE`. Quindi, la selezione dei file nella finestra principale ha effetto sulla patch generata.

Un'altra possibilità è selezionare un file nella finestra principale e scegliere Sfoglia registro... dal menu Visualizza, o fare clic destro sul file evidenziato e scegliere Sfoglia registro... dal menu contestuale per aprire la finestra per sfogliare i registri. Ora, seleziona la versione relativamente alla quale vuoi creare una patch come revisione A, e premi il pulsante Crea patch.... Questo genererà una patch con le modifiche tra il file evidenziato nella tua copia di lavoro e la versione selezionata come revisione A.

Prima di generare la patch, &cervisia; mostra una finestra che permette di configurare il formato di uscita.

#### Schermata della finestra di patch di &cervisia;

Schermata della finestra di patch di &cervisia;

Formato di uscita

- Sono disponibili tre formati di uscita:

  Normale: un formato utilizzabile per far fare automaticamente all'editor ed un'altra copia del vecchio file corrispondente al nuovo. Nel formato d'uscita normale i caratteri < e > indicano le modifiche, e non ci sono informazioni di contesto.

  Unificato: il formato più usato per scambiarsi patch. Il formato unificato usa righe di contesto oltre ai numeri di riga per indicare le modifiche. Questo rende l'applicazione delle patch più robusta. Questo formato visualizza le modifiche in forma leggibile e compatta, con un'intestazione per ogni file coinvolto, e sezioni separate per ogni modifica. Le righe di contesto disponibili per ogni modifica facilitano la lettura e le modifiche. Nel formato di uscita unificato sono i caratteri `+` e `-` a indicare le modifiche.

  Contesto: presenta le stesse informazioni del formato unificato, ma in modo meno compatto. Nel formato d'uscita contestuale, le modifiche sono indicate dal carattere `!`.

Numero di righe di contesto:

- Imposta qui il numero di righe di contesto per i formati d'uscita unificato o contestuale. Questa opzione non è disponibile per il formato d'uscita normale, in quanto non vi viene registrata nessuna informazione sul contesto. Più informazioni di contesto facilitano la lettura e rendono più precisa l'applicazione della patch, ma ne aumentano le dimensioni. Si raccomanda di usare almeno due righe di contesto per il corretto funzionamento delle patch.

Che cosa ignorare

- Segna qui quali modifiche non dovrebbero essere considerate differenze alla generazione della patch.

Dopo aver impostato il formato d'uscita, &cervisia; genera la patch e visualizza la finestra Salva come. In questa finestra, inserisci il nome e la posizione del file di patch.

### Esaminare la vista annotata di un file

Con il comando ``cvs` `annotate`` &CVS; dà la possibilità di vedere, per ogni riga di un file, chi è stato l'ultimo a modificarla. Questa vista può essere utile per scoprire chi ha introdotto una modifica nel comportamento di un programma o a chi si deve chiedere riguardo a una modifica o un errore nel codice.

&cervisia; dà accesso a questa funzionalità, e ne arricchisce interattivamente le informazioni. Puoi avere una vista annotata selezionando Visualizza Annotazioni. Un'altra possibilità è premere il pulsante Annotazioni nella finestra per sfogliare i registri, nella quale puoi selezionare quale versione del file vuoi visualizzare. Nelscreenshot-annotate puoi vedere una schermata di questa finestra.

#### Schermata della vista delle annotazioni di &cervisia;

Schermata della vista delle annotazioni di &cervisia;

Nella finestra di annotazione vedi in un riquadro l'ultima versione del file selezionato (o la versione della revisione A, nel caso si sia avviata la finestra di annotazione dalla finestra per sfogliare i registri). Nelle colonne prima del testo si trovano delle informazioni riguardo all'ultima modifica di ogni riga: nella prima viene mostrato il numero della riga, mentre nella seconda si vede il nome dell'autore e il numero di revisione, infine, nella terza si vede il contenuto della riga.

Di conseguenza, quando una riga sembra strana o si presume ci sia un errore, si può immediatamente vedere chi ne è responsabile. Non solo, ma si può anche scoprire perché quella riga è stata modificata. Per farlo, sposta il cursore del mouse sul numero di revisione corrispondente. Apparirà un suggerimento con il messaggio di registro e la data di modifica.

### Sfogliare i registri di &CVS;

Quando selezioni un file nella vista principale e scegli Sfoglia registro dal menu Visualizza o fai clic destro sul file e scegli Sfoglia registro dal menu contestuale, appare la finestra Registro di CVS (se ne scegli più d'uno non succede nulla, perché &cervisia; può generare ed elaborare il registro di un solo file alla volta). Questa finestra dà possibilità oltre la visualizzazione della cronologia del file. Usandolo come navigatore tra le versioni, puoi:

- Leggere revisione, autore, data, ramo, messaggio di deposito, e tag di ogni versione del file selezionato.

- Avere una rappresentazione grafica ad albero dei tag e delle diramazioni del file selezionato.

- Visualizzare qualsiasi versione del file selezionato (con l'applicazione predefinita).

- Esaminare una vista annotata di qualsiasi versione del file selezionato.

- Vedere le differenze tra coppie di versioni del file selezionato, anche coppie con l'attuale copia di lavoro del file.

- Creare patch contenenti le differenze tra qualsiasi coppia di versioni del file selezionato, anche coppie con l'attuale copia di lavoro del file.

#### Schermata della finestra per sfogliare i registri di &cervisia;

Schermata della finestra per sfogliare i registri di &cervisia;

Puoi scegliere di vedere la cronologia come viene data dal comando ``cvs` `log`` (Output di CVS), come Albero, o in forma di Lista. La scelta dipende dai tuoi gusti e dalle informazioni che stai cercando. L'albero è una rappresentazione intuitiva di cosa è stato fatto e da chi nelle varie diramazioni. Puoi vedere i messaggi di registro corrispondenti sotto forma di suggerimenti. La lista è di natura lineare, e quindi non dà una chiara visuale delle diramazioni; d'altro canto concentra più informazioni rilevanti in meno spazio sullo schermo, cioè l'ora di ogni modifica del file e la prima parte del messaggio di registro. Le informazioni dell'output di &CVS; sono esaustive, ma prolisse e difficili a leggersi. Per ridurre questo problema, hai la possibilità di cercare nel testo dell'output di &CVS; premendo il pulsante Trova.

Per avere maggiori informazioni su una revisione specifica puoi farci clic nelle viste a lista o ad albero. I campi nel centro della finestra vengono quindi riempiti con le informazioni prodotte dal comando `cvs log`. Puoi segnare due revisioni, indicate come A e B, che saranno usate se farai uso delle funzionalità fornite dai pulsanti. La revisione A può essere scelta con il pulsante sinistro del mouse, la B con il centrale. Nella vista a lista puoi anche navigare con i tasti freccia. Per indicare le revisioni A e B usa rispettivamente le scorciatoie &Ctrl;A e &Ctrl;B. Nella vista Output di CVS puoi fare clic su Seleziona come revisione A e Seleziona come revisione B per indicare le revisioni.

Se premi il pulsante Annotazioni avrai una finestra che mostra il testo del file della revisione indicata come A. Ogni riga viene prefissata con le informazioni su chi è stato l'ultimo a modificarla, e in quale revisione è stato fatto. Puoi avere maggiori informazioni sulla visualizzazione di versioni annotate nel annotate.

Se premi il pulsante Confronto, viene eseguito un comando `cvs diff`, e ottieni una finestra in cui sono mostrate tutte le modifiche tra le due revisioni indicate. Se indichi la revisione A ma non la B, &cervisia; genererà le modifiche tra la versione indicata come A e la copia di lavoro del file. Ciò permette di vedere le differenze tra la tua versione del file e qualsiasi altra disponibile in &CVS;. Per facilitare la visione delle modifiche si usano colori diversi per indicare le righe aggiunte, rimosse o solo modificate. Puoi avere maggiori informazioni sulla visione delle differenze nel diff.

Se premi il pulsante Crea patch... ottieni una finestra in cui puoi impostare le opzioni di formato per generare un file contenente tutte le modifiche tra le due revisioni indicate. Se indichi la revisione A ma non la B, &cervisia; genererà le modifiche tra la versione indicata come A e la copia di lavoro del file. Questo permette di generare una patch, o file di differenze, tra la tua versione del file e qualsiasi altra disponibile in &CVS;. Dopo aver configurato il formato della patch nella finestra, e aver premuto OK, viene eseguito un comando `cvs diff` per generare il file di differenze. Apparirà una finestra Salva come; inserisci il nome del file e il luogo in cui si trova il file patch generato da &cervisia; in modo da poterlo salvare. Puoi avere maggiori informazioni sulla creazione di patch e sulle opzioni del formato di patch nel creatingpatches.

Se premi il pulsante Visualizza, &cervisia; recupererà la revisione indicata con A e la visualizzerà con l'applicazione predefinita per il suo tipo di file.

Premi il pulsante Chiudi per lasciare la finestra e tornare alla vista principale.

Per generare il registro che è alla base della finestra Registro di CVS, &cervisia; usa il seguente comando:

    cvs log nome del file

### Sfogliare la cronologia

Se la registrazione è stata attivata per il deposito usato, &cervisia; può presentare una cronologia di certi eventi come prelievi, depositi, tag, aggiornamenti e rilasci. Scegli Cronologia dal menu Visualizza, e &cervisia; eseguirà il comando:

    cvs history -e -a

Questo scarica l'intero file di cronologia dal server, cioè un elenco degli eventi di tutti gli utenti e di tutti i moduli. Può essere una quantità enorme di dati.

Ora puoi vedere l'elenco degli eventi, ordinati per data. Nella seconda colonna è mostrato il tipo di evento:

- Prelievo - l'utente indicato nella colonna Autore ha prelevato un modulo.

- Tag - Un utente ha usato il comando ``cvs` `rtag``. Nota che l'uso di ``cvs` `tag`` (quello usato dal comando Avanzate Crea tag o ramo di &cervisia;) non è registrato nella banca dati della cronologia. Ciò ha ragioni storiche (vedi la FAQ di &CVS;).

- Rilascio - Un utente ha rilasciato un modulo. In realtà questo comando è poco usato e non serve a molto.

- Aggiornamento, eliminazione - Un utente aggiornato un file eliminato dal deposito. Quindi il file è stato eliminato dalla sua copia di lavoro.

- Aggiornamento, copia - Un utente ha aggiornato un file. Una nuova versione è stata copiata nella copia di lavoro.

- Aggiornamento, fusione - Un utente ha aggiornato un file. Le modifiche della copia nel deposito sono state fuse con quelle della copia di lavoro.

- Aggiornamento, conflitto - Un utente ha aggiornato un file, ed è stato rilevato un conflitto con le sue modifiche.

- Deposito, modifica - Un utente ha depositato un file modificato.

- Deposito, aggiunta - Un utente ha aggiunto un file ed l'ha depositato.

- Deposito, rimozione - Un utente ha rimosso un file ed ha depositato la rimozione.

#### Schermata della finestra della cronologia di &cervisia;

Schermata della finestra della cronologia di &cervisia;

Puoi ordinare l'elenco secondo altri criteri facendo clic sulle intestazioni delle rispettive colonne. Per trovare le voci di cronologia di interesse, ci sono varie opzioni di filtraggio attivabili con delle caselle:

- Mostra eventi di deposito - mostra i depositi

- Mostra eventi di prelievo - mostra i prelievi

- Mostra eventi di tag - mostra l'etichettatura delle versioni

- Mostra altri eventi - mostra gli eventi non inclusi fra i suddetti

- Solo l'utente - mostra solo gli eventi causati da un certo utente

- Solo i file corrispondenti a - filtra i nomi dei file con un'espressione regolare

- Solo le cartelle corrispondenti a - filtra i nomi delle cartelle con un'espressione regolare

I caratteri speciali riconosciuti dalle espressioni regolari sono:

- `x*` corrisponde ad un numero qualsiasi di ripetizioni del carattere `x`.

- `x+` corrisponde ad una o più ripetizioni del carattere `x`.

- `x?` corrisponde a nessuna o una ripetizione del carattere `x`.

- `^` corrisponde all'inizio della stringa.

- `$` corrisponde alla fine della stringa.

- `[a-cx-z]` corrisponde ad una serie di caratteri, in questo caso all'insieme di `a`, `b`, `c`, `x`, `y`, `z`.

## Uso avanzato

### Aggiornare a tag, ramo o data

I rami di un modulo sono versioni parallele dello stesso. Un buon esempio concreto dell'uso di questa funzione è il rilascio di un progetto software. Dopo un rilascio importante ci sono errori da correggere nel codice, ma gli sviluppatori vogliono anche aggiungere nuove funzioni. È molto difficile fare entrambe le cose allo stesso tempo, perché le nuove funzioni di solito introducono nuovi errori, rendendo difficoltosa la ricerca di quelli vecchi. Per risolvere questo dilemma, &CVS; permette di creare una versione parallela, che chiameremo il ramo del rilascio stabile, dove si possono solo fare correzioni, lasciando il ramo principale (HEAD) aperto all'aggiunta di nuove funzionalità.

I tag si usano per segnare una versione di un progetto. &CVS; timbra una versione di ogni file con il tag, cosicché quando prelievi o aggiorni a un certo tag, trovi sempre le stesse versioni dei file; quindi, al contrario dei rami, i tag non sono dinamici: non si può sviluppare su un tag. I tag sono utili a segnare i rilasci, grandi cambiamenti nel codice, eccetera.

Quando sviluppi o stai seguendo lo sviluppo di un progetto, non è detto che lavori sempre sul ramo principale. Dopo un rilascio, potresti voler stare per un po' sul ramo di rilascio, per approfittare della sua stabilità, correggere gli errori, tradurre il codice sorgente, eccetera. Per fare tutto ciò, devi aggiornare al ramo di rilascio. Tutti i tuoi file saranno aggiornati all'ultima versione dei file in quel ramo. Dopo l'aggiornamento, anche tutti i tuoi nuovi depositi saranno inviati nel nuovo ramo.

Inoltre, se vuoi seguire un errore segnalato in un rilascio precedente che ha un tag, &CVS; dà la possibilità di recuperare il programma così come è stato rilasciato, aggiornando a quel tag. Inoltre, se vuoi recuperare una versione precedente del progetto, puoi aggiornare la copia di lavoro a una certa data. Ciò potrebbe essere utile se nel progetto è stato introdotto un errore tra i due rilasci, e hai un'idea di quando sia successo. Quando aggiorni a una data o a un tag, le versioni dei file saranno le stesse delle versioni a quella certa data o le versioni timbrate da quel tag.

Prima di aggiornare a un diverso ramo o tag, assicurati di aver depositato tutte le tue modifiche al ramo su cui stai lavorando. Se non sei pronto a depositarle, ma non vuoi buttarle via, non aggiornare al nuovo ramo, perché le potresti perdere. In alternativa, puoi fare un nuovo prelievo per lavorare in parallelo su entrambe le versioni.

#### Schermata della finestra di aggiornamento a tag di &cervisia;

Schermata della finestra di aggiornamento a tag di &cervisia;

Aggiorna a ramo

- Seleziona questa opzione per aggiornare a un ramo. Inseriscine il nome nella casella di testo a cascata (o premi il pulsante Recupera lista per prendere l'elenco di rami dal server &CVS;, e selezionare quello che vuoi nella casella a cascata).

Aggiorna a tag

- Seleziona questa opzione per aggiornare a un tag. Inseriscine il nome nella casella di testo a cascata (o premi il pulsante Recupera lista per prendere l'elenco di tag dal server &CVS;, e selezionare quello che vuoi nella casella a cascata).

Aggiorna a data

- Seleziona questa opzione per aggiornare a una data. Nel campo sottostante puoi inserire un'ampia varietà di formati di data. Un formato possibile è `aaaa-mm-gg`, dove `aaaa` è l'anno, `mm` il mese (in numeri), e `gg` il giorno. In alternativa si possono usare alcune frasi in inglese, come `yesterday` (ieri) e `2 weeks ago` (due settimane fa).

L'aggiornamento a un tag o a una data li fissa, cioè non permette di depositare altre modifiche ai file (a meno che il tag sia il tag di un ramo). Per tornare al ramo principale, usa l'elemento del menu Avanzate Aggiorna a HEAD.

Il comando eseguito per aggiornare a un ramo o tag è:

    cvs update -r tag

Il comando eseguito per l'aggiornamento a una data è:

    cvs update -D data

Il comando usato per aggiornare al ramo principale (HEAD) è:

    cvs update -A

### Tag e rami

Discuteremo qui solo gli aspetti tecnici di tag e rami. Se sei solo un utente, non l'amministratore del deposito, probabilmente non avrai il problema. Se invece sei l'amministratore di un tuo deposito privato, dovresti prima informarti sui problemi non tecnici che seguono le diramazioni, per avere un'idea di quanto la manutenzione di più rami di un progetto si paghi in termini di tempo ed errori. L'appendice include alcuni riferimenti al riguardo.

I tag semplici si fanno di solito in concomitanza con un rilascio, in modo da poter in seguito riottenere facilmente lo stato del progetto in quel momento. I tag di solito ricevono un nome costruito con il nome del progetto e il numero della versione. Per esempio, &cervisia; 1.0 è disponibile con il tag `CERVISIA_1_0`. &cervisia; applica le rigide regole di &CVS; riguardo alla validità dei nomi dei tag: deve cominciare con una lettera e può contenere lettere, cifre, trattini e caratteri di sottolineatura.

Normalmente si applica il tag a tutto il progetto (sebbene &CVS; permetta anche di applicarlo a un suo sottoinsieme). A tal fine, seleziona la cartella di massimo livello e seleziona Avanzate Crea tag o ramo. Inserisci ora il nome del tag, premi &Enter; e hai finito.

Creare un ramo non è molto più difficile: nella finestra del tag, spunta la casella Crea un ramo con questo tag. Puoi anche eliminare un tag esistente: scegli Avanzate Elimina tag nella vista principale.

Un altro aspetto delle diramazioni è la fusione delle modifiche da un altro ramo a quello attuale. Se intendi farlo, scegli Avanzate Fondi. La finestra che si presenta dà due possibilità:

Puoi fondere tutte le modifiche fatte su un ramo nel ramo attuale. In tal caso, spunta la casella Fondi dal ramo e inserisci il ramo da cui vuoi fondere. &cervisia; eseguirà quindi il comando:

    cvs update -j nome_del_ramo

L'altra possibilità è fondere solo le modifiche fatte su un ramo tra due tag. Questo di solito avviene quando fondi più volte dallo stesso ramo. In tal caso, spunta la casella Fondi le modifiche e inserisci (nell'ordine giusto) due tag. Ciò produrrà il comando:

    cvs update -j tag_del_primo_ramo -j tag_del_secondo_ramo

### Usare gli osservatori

Un osservatore è il nome usato per la funzionalità di &CVS; per notificare gli utenti del deposito ogni volta che un file viene modificato o uno sviluppatore inizia a modificare un file. L'uso degli osservatori richiede che il file `$`CVSROOT`/CVSROOT/notify` sia correttamente configurato; questo non viene trattato qui: se ti servono maggiori informazioni sulla configurazione dal punto di vista dell'amministratore, vedi uno dei libri elencati in appendice.

La maggior parte del supporto per osservatori di &cervisia; è costituito sei voci del menu.

Per aggiungere un osservatore a uno o più file, usa Avanzate Aggiungi osservatore. Nella finestra che viene prodotta puoi scegliere di ricevere notifica per ciascun tipo di eventi supportati da &CVS;. Per esempio, se vuoi solo avere notifica del deposito di un file, segna le caselle Solo e Depositi. Se vuoi avere notifica di ogni evento relativo ai file indicati, spunta la casella Tutti. Il comando usato all'accettazione della finestra è:

    cvs watch add -a commit nomi dei file

o con un'opzione simile, a seconda degli eventi che hai scelto di osservare.

Se alcuni file non ti interessano più, puoi rimuoverne gli osservatori. A tal fine, usa Avanzate Rimuovi osservatore. Nella finestra che viene prodotta ci sono le stesse scelte usate nella finestra di aggiunta dell'osservatore. Quando confermi la finestra, &cervisia; esegue il comando:

    cvs watch remove nomi dei file

possibilmente con l'opzione `-a` per indicare gli eventi scelti.

Infine, puoi ottenere l'elenco delle persone che stanno sorvegliando dei file. Scegli Avanzate Mostra osservatori. L'uso di questa voce del menu eseguirà il comando:

    cvs watchers nomi dei file

Nell'uso normale di &CVS;, ogni sviluppatore lavora separatamente nella sua copia di lavoro. Quando vuole modificare dei file, gli basta aprirli con l'editor preferito e iniziare a lavorarci. Nessun altro saprà di questo lavoro finché il file non verrà depositato.

Per alcuni gruppi di sviluppatori, questo non è il modello di collaborazione preferito. Vogliono essere avvertiti quando qualcuno lavora su un file non appena inizia. Questo si può fare con qualche altro comando di &CVS;. Prima di iniziare a modificare un file, selezionalo dalla finestra principale di &cervisia; e scegli Avanzate Riserva per modifica. Ciò eseguirà il comando:

    cvs edit nomi dei file

Ciò invierà una notifica a tutti quelli che hanno impostato un osservatore di modifiche (`edit`) sul file. Inoltre, verrai registrato come redattore del file. Puoi ottenere un elenco di tutti i redattori di un certo file con Avanzate Mostra redattori. Questo è come digitare sulla riga di comando:

    cvs editors nomi dei file

Una sessione di modifica viene automaticamente terminata quando depositi il file in questione. In quel momento, viene inviata una notifica di disimpegno (`unedit`) a tutte le persone che hanno registrato un osservatore di modifiche sul file. Ovviamente, a volte non vorrai depositare il file, ma piuttosto interrompere la sessione e tornare alla versione precedente del file. Questo si fa usando Avanzate Disimpegna i file. Nota che &cervisia; non chiederà conferma: ciò vuol dire che se usi questo elemento del menu, tutto il lavoro che hai fatto da quando hai usato Avanzate Impegna i file andrà perso. Per la precisione, &cervisia; usa il comando:

    echo y | cvs unedit nomi dei file

Finora abbiamo discusso solo il caso un cui impegni e disimpegni vengono usati volontariamente dagli sviluppatori. In aggiunta a ciò, &CVS; supporta un modello che impone l'uso di questi comandi. Il comando usato per passare a questo modello è ``cvs` `watch on``, del quale non parleremo ulteriormente perché è usato essenzialmente dall'amministratore del deposito. Tuttavia, il concetto importante dal punto di vista dello sviluppatore è che quando il progetto impone gli impegni, le copie di lavoro sono prelevate in sola lettura. Ciò vuol dire che i file non si possono modificare immediatamente (a meno di barare usando `chmod`). I file diventano scrivibili solo quando si usa Avanzate Impegna i file, e vengono di nuovo resi di sola lettura quando depositi il file o usi Avanzate Disimpegna i file.

L'interfaccia di &cervisia; aiuta a lavorare con questi progetti anche in un altro modo. Se avvii un editor su un file di sola lettura, facendoci doppio clic o usando File Modifica, non potresti poi salvarne le modifiche. C'è ovviamente un motivo: ogni volta che cambi un file, dovresti prima eseguire ``cvs` `edit``, in modo che tutte le persone che lo stanno osservando abbiano notifica del tuo lavoro.

In tal caso, è consigliabile segnare l'opzione Impostazioni Esegui automaticamente cvs edit quando necessario. Adesso, ogni qualvolta modifichi un file facendoci doppio clic, &cervisia; eseguirà ``cvs` `edit`` prima di avviare l'editor. Puoi quindi modificare il file come fai normalmente. Quando hai finito, deposita i file, e questi saranno di nuovo resi di sola lettura.

### Blocco

Il modello di sviluppo solitamente usato con &CVS; è detto dei prelievi non riservati. Ogni sviluppatore ha la sua copia locale nella quale può modificare i file come vuole. Se si usano le funzioni di osservazione come ``cvs` `edit``, molti sviluppatori possono lavorare allo stesso tempo sui file. Le modifiche fatte dagli altri sviluppatori sono fuse nella copia locale a ogni aggiornamento.

Altri sistemi di controllo delle versioni, come RCS e SourceSafe, usano un altro modello. Quando uno sviluppatore vuole modificare un file, lo deve bloccare. Solo uno sviluppatore alla volta può bloccare un file. Quando ha finito, il blocco viene rilasciato. Il vantaggio è che con questo modello non ci possono mai essere conflitti. D'altro canto, due sviluppatori non possono lavorare sullo stesso file allo stesso tempo, anche quando le loro modifiche non si influenzano; questo può essere un fattore di limite. Non discuteremo i benefici organizzativi di questi due approcci, ma facciamo tuttavia presente che sebbene &CVS; supporti i blocchi, questi non sono il modo migliore per lavorare con &CVS;. Non dovresti usare queste funzionalità a meno di essere sicuro che l'amministratore del progetto le permetta.

Con &cervisia; puoi bloccare i file come segue. Seleziona i file che vuoi bloccare nella vista principale, scegli quindi Avanzate Blocca i file. Ciò esegue il comando:

    cvs admin -l nomi dei file

L'effetto opposto si ottiene con Avanzate Sblocca i file. Ciò esegue il comando:

    cvs admin -u nomi dei file

## Personalizzare &cervisia;

&cervisia; può essere adeguata in molti modi alle tue esigenze e preferenze. Alcune opzioni che potresti voler cambiare spesso sono disponibili direttamente nel menu Impostazioni.

### Generale

Nome utente per il redattore del ChangeLog:

- Ogni volta che usi l'elemento del menu File Inserisci voce in ChangeLog, si genera una nuova voce di ChangeLog con la data corrente e il tuo nome utente. Normalmente è considerata buona norma inserire il proprio nome completo e il proprio indirizzo di posta elettronica in ciascuna delle voci di ChangeLog. &cervisia; aggiunge automaticamente quelli qui inseriti.

Percorso dell'eseguibile CVS, o «cvs»:

- Puoi inserire qui il nome (o il percorso) al comando `cvs`. A meno di scelte diverse, verrà usato in &cervisia; l'eseguibile per &CVS; che si trova nella variabile d'ambiente `PATH`.

### Visore delle differenze

Numero di righe di contesto nella finestra di confronto:

- Per la finestra di confronto, &cervisia; usa l'opzione `-U` del comando `diff`. Questo fa mostrare a `diff` solo un numero limitato di righe attorno a ogni regione differente (righe di contesto). Qui puoi impostare l'argomento di `-U`.

Opzioni aggiuntive per il confronto cvs:

- Qui puoi aggiungere altri argomenti a `diff`. È comune inserire `-b`, che fa ignorare a `diff` le modifiche di soli spazi.

Ampiezza tabulazione nella finestra di confronto:

- Nella finestra di confronto, i caratteri di tabulazione presenti nel file o nel risultato del comando `diff` sono espansi in un certo numero di spazi. Come impostazione predefinita, ogni tabulazione viene sostituita da otto spazi, ma qui puoi impostarne un altro numero.

Interfaccia di confronto esterna:

- Quando usi una qualsiasi funzionalità che mostra la finestra di confronto, come Visualizza Confronta col deposito, &cervisia; richiama la sua interfaccia di confronto interna. Se ne preferisci un'altra, come &kompare;, TkDiff o xxdiff, inseriscine qui il percorso.

### Stato

Quando apri una copia locale da un deposito remoto, avvia automaticamente un comando File→Stato

- Quando attivi questa opzione, il comando File Stato viene eseguito ogni volta che apri una cartella di lavoro remota. Questo comando può richiedere un po' di tempo e anche una connessione al server dei depositi remoti (rendendolo inutilizzabile quando si è scollegati).

Quando apri una copia locale da un deposito locale, avvia automaticamente un comando File→Stato

- Quando attivi questa opzione, il comando File Stato viene eseguito ogni volta che apri una cartella di lavoro locale.

### Avanzate

Tempo dopo cui appare una finestra di avanzamento (in ms):

- Praticamente tutti i comandi &CVS; avviati in una copia locale appartenente a un deposito remoto devono connettersi al server di &CVS;. Ciò può venire ostacolato da ritardi nella connessione di rete o un forte carico sul server. Per questa ragione, per comandi come Visualizza Confronta col deposito, &cervisia; apre una finestra che indica che il comando è ancora in esecuzione e che permette di interromperlo. Inoltre, questa finestra si usa per mostrare i messaggi di errore da &CVS;. Siccome questa finestra può diventare fastidiosa dopo un po', viene mostrata solo dopo un certo periodo di tempo, il cui valore predefinito sono quattro secondi; qui puoi cambiarne il valore.

Livello di compressione predefinito:

- Il client di &CVS; comprime file e patch durante il trasferimento via rete. Con l'opzione da riga di comando `-z` si può impostare il livello di compressione. Puoi configurare &cervisia; in modo che usi questa opzione configurandone qui il livello. Il valore qui impostato si usa solo come valore predefinito; inoltre, c'è un'impostazione per ogni deposito disponibile in Deposito Depositi.

Usa un processo attivo o avvia un nuovo processo ssh-agent

- Spunta questa casella se usi dei depositi ext (↱), la shell remota &ssh; per comunicare con il deposito e ssh-agent per gestire le tue chiavi.

### Aspetto

Caratteri per la finestra di protocollo

- Premi questo pulsante per aprire la finestra di selezione dei caratteri, per scegliere i caratteri da usare nella finestra di protocollo (la finestra che mostra l'output del client &CVS;).

Caratteri per la vista annotata

- Premi questo pulsante per aprire la finestra di selezione dei caratteri, per scegliere i caratteri da usare nella vista annotata.

Caratteri per la vista di confronto

- Premi questo pulsante per aprire la finestra di selezione dei caratteri, per scegliere i caratteri da usare nella vista di confronto.

Colori

- Premi i pulsanti colorati per aprile la finestra di selezione dei colori, per impostare il colore usato per In conflitto, Modifica locale o Modifica remota nella vista principale o Modifica di confronto, Inserimento di differenza, o Eliminazione di differenza nell'interfaccia di confronto interna di &cervisia;.

Dividi la finestra principale orizzontalmente

- La finestra principale di &cervisia; è normalmente suddivisa in un'area principale con l'albero dei file nella parte alta e in un'area con il risultato dei comandi di &CVS; nella parte bassa. Se preferisci, puoi affiancare le viste orizzontalmente.

## Appendice

### File ignorati

Nell'albero dei file principale, &cervisia; non mostra tutti i file che sono effettivamente presenti. Allo stesso modo fa il comando `cvs` e aiuta ad evitare la confusione causata dalla presenza di file non interessanti, come i file oggetto. &cervisia; cerca di ricalcare il comportamento di `cvs` nel modo più fedele possibile, cioè prende elenchi di file da ignorare dalle seguenti fonti:

- Un elenco statico di voci che includono cose come `*.o` e `core`. Per maggiori dettagli, consulta la documentazione di &CVS;.

- Il file `$`HOME`/.cvsignore`.

- La variabile d'ambiente `CVSIGNORE`.

- Il file `.cvsignore` nella rispettiva cartella.

Il comando `cvs` cerca altre voci in `$`CVSROOT`/CVSROOT/cvsignore`, ma questo è un file sul server, e &cervisia; dovrebbe poter partire anche senza collegamento. Se stai lavorando con un gruppo che preferisce usare una lista di elementi da ignorare sul server, probabilmente è una buona idea vedere quali schemi ci sono lì e metterli nel file `.cvsignore` della tua cartella Home.

### Altre informazioni e supporto

- &CVS; include una documentazione completa sotto forma di pagine info, note come "The Cederqvist". Se sono installate correttamente, le potrai consultare inserendo `info:/cvs` nella barra dell'indirizzo di &konqueror;, oppure basta che scegli Aiuto Manuale di CVS in &cervisia;. Una versione PDF di "The Cederqvist" è disponibile in rete.

  Essendo questo libro curato assieme a &CVS;, è normalmente la guida di riferimento più aggiornata; si raccomanda comunque di prendere in considerazione anche altre fonti per imparare &CVS;, in particolare le seguenti.

- Karl Fogel ha scritto l'ottimo libro Open Source Development with &CVS;. Circa metà del libro riguarda il processo di sviluppo del software libero. L'altra metà è una documentazione tecnica su &CVS;. La parte tecnica è stata cortesemente distribuita sotto la GPL, ed è quindi possibile scaricarne la versione &HTML;. L'errata corrige è disponibile sulla pagina Web indicata sopra.

- Le questioni su &CVS; vengono trattate su un'apposita lista di discussione.

- C'è il gruppo USENET `comp.software.config-mgmt` dedicato alla gestione della configurazione in generale. &CVS; è un argomento solo marginalmente rilevante per il gruppo, ma può essere comunque interessante discutere i meriti di altri sistemi di controllo delle revisioni rispetto a &CVS;.

### Guida ai comandi

#### Il menu File

&Ctrl;O File Apri copia locale...

- Apre una copia locale nella finestra principale. Vedi mainscreen.

File Copie locali recenti

- Apre una delle copie locali usate di recente.

File Inserisci voce in ChangeLog

- Apre la finestra di modifica del ChangeLog, preparata in modo da aggiungere una nuova voce con la data corrente. Vedi committingfiles.

&Ctrl;U File Aggiorna

- Esegue il comando ``cvs` `update`` sui file selezionati e quindi modifica lo stato e i numeri di revisione. Vedi mainscreen.

F5 File Stato

- Esegue il comando ``cvs` `-n` `update`` sui file selezionati e quindi modifica lo stato e i numeri di revisione. Vedi mainscreen.

File Modifica

- Apre il file selezionato nell'editor predefinito di &kde; per il tipo del file selezionato.

File Risolvi

- Apre una finestra per il file selezionato per risolvere i conflitti di fusione. Vedi resolvingconflicts.

# File Deposita

- Permette di depositare i file selezionati. Vedi committingfiles.

Ins File Aggiungi al deposito

- Permette di aggiungere i file selezionati al deposito. Vedi addingfiles.

File Aggiungi file binario

- Permette di aggiungere i file selezionati come file binari (``cvs` `add` `-kb``). Vedi addingfiles.

Del File Rimuovi dal deposito

- Permette di rimuovere i file selezionati dal deposito. Vedi removingfiles.

File Scarta modifiche

- Scarta le modifiche locali fatte ai file selezionati e ripristina la versione del deposito (opzione `-C` di ``cvs` `update``).

&Ctrl;Q File Esci

- Esce da &cervisia;.

#### Il menu Visualizza

&Esc; Visualizza Interrompi

- Interrompe tutti i sottoprocessi in esecuzione.

&Ctrl;L Visualizza Sfoglia registro

- Mostra il navigatore dei registri per le versioni del file selezionato. Vedi browsinglogs.

&Ctrl;A Visualizza Annotazioni

- Mostra una vista annotata del file selezionato, cioè una vista in cui si può vedere l'ultimo autore di ogni riga. Vedi annotate.

&Ctrl;D Visualizza Confronta col deposito (BASE)

- Mostra le differenze tra il file selezionato nella copia locale e la revisione dell'ultimo aggiornamento (BASE). Vedi diff.

&Ctrl;H Visualizza Confronta col deposito (HEAD)

- Mostra le differenze tra il file selezionato nella cartella di lavoro e l'ultima revisione sul server (HEAD). Vedi diff.

Visualizza Ultima modifica

- Mostra le differenze tra la revisione del file selezionato dell'ultimo aggiornamento (BASE) e quella precedente. Vedi diff.

Visualizza Cronologia

- Mostra la cronologia di &CVS; come riportata dal server. Vedi browsinghistory.

Visualizza Nascondi tutti i file

- Determina se mostrare solo le cartelle nella vista ad albero principale. Vedi mainscreen.

Visualizza Nascondi file immutati

- Determina se nascondere i file sconosciuti e quelli aggiornati dalla vista ad albero principale. Vedi mainscreen.

Visualizza Nascondi i file rimossi

- Determina se nascondere i file eliminati della vista ad albero principale. Vedi mainscreen.

Visualizza Nascondi i file non gestiti da CVS

- Determina se nascondere i file non presenti in &CVS; nella vista ad albero principale. Vedi mainscreen.

Visualizza Nascondi le cartelle vuote

- Determina se nascondere le cartelle senza elementi visibili dalla vista ad albero principale. Vedi mainscreen.

Visualizza Apri l'albero dei file

- Apre tutti i rami dell'albero dei file, in modo da mostrare tutti i file e le cartelle. Vedi mainscreen.

Visualizza Chiudi l'albero dei file

- Chiude tutti i rami dell'albero dei file. Vedi mainscreen.

#### Il menu Avanzate

Avanzate Crea tag o ramo

- Applica un tag ai file selezionati, o creane un ramo. Vedi taggingbranching.

Avanzate Elimina tag

- Elimina un tag dai file selezionati. Vedi taggingbranching.

Avanzate Aggiorna a tag o data

- Porta i file selezionati ad una certa data o tag, permanentemente. Vedi updatingto.

Avanzate Aggiorna a HEAD

- Porta i file selezionati alle rispettive versioni di HEAD. Vedi updatingto.

Avanzate Fondi

- Fonde un ramo o le modifiche tra due tag nei file selezionati. Vedi taggingbranching.

Avanzate Aggiungi osservatore

- Aggiunge un osservatore per una serie di eventi ai file selezionati. Vedi watches.

Avanzate Rimuovi osservatore

- Elimina un osservatore per una serie di eventi dai file selezionati. Vedi watches.

Avanzate Mostra osservatori

- Elenca gli osservatori dei file selezionati. Vedi watches.

Avanzate Impegna i file

- Esegue ``cvs` `edit`` sui file selezionati. Vedi watches.

Avanzate Disimpegna i file

- Esegue ``cvs` `unedit`` sui file selezionati. Vedi watches.

Avanzate Mostra redattori

- Esegue ``cvs` `editors`` sui file selezionati. Vedi watches.

Avanzate Blocca i file

- Blocca i file selezionati. Vedi locking.

Avanzate Sblocca i file

- Sblocca i file selezionati. Vedi locking.

Avanzate Crea patch relativa al deposito

- Crea una patch partendo dalle modifiche nella copia locale. Vedi creatingpatches.

#### Il menu Deposito

Deposito Crea

- Apre una finestra che permette di creare un nuovo deposito locale. Vedi accessing-repository.

Deposito Prelievo

- Apre una finestra che permette di prelevare un modulo da un deposito. Vedi checkingout.

Deposito Importa

- Apre una finestra che permette di importare un pacchetto nel deposito. Vedi importing.

Deposito Depositi

- Configura un elenco di depositi di uso comune e come accedervi. Vedi accessing-repository.

#### I menu Impostazioni e Aiuto

Oltre ai comuni menu di &kde; Impostazioni e Aiuto, che sono descritti nel capito sui menu della documentazione dei Fondamentali di &kde;, &cervisia; ha le seguenti voci specifiche:

Impostazioni Crea cartelle durante l'aggiornamento

- Determina se gli aggiornamenti creano le cartelle mancanti dalla copia locale (opzione `-d` a ``cvs` `update``).

Impostazioni Elimina le cartelle vuote durante l'aggiornamento

- Determina se gli aggiornamenti eliminano le cartelle vuote dalla copia locale (opzione `-P` a ``cvs` `update``).

Impostazioni Aggiorna ricorsivamente

- Determina se gli aggiornamenti sono ricorsivi (opzione `-r` a ``cvs` `update``).

Impostazioni Deposita e rimuovi ricorsivamente

- Determina se i depositi e le eliminazioni dei file sono ricorsivi (opzione `-r` a ``cvs` `add`` e ``cvs``remove`` rispettivamente).

Impostazioni Esegui automaticamente cvs edit quando necessario

- Determina se ``cvs` `edit`` viene eseguito automaticamente ogni volta che modifichi un file.

Aiuto Manuale di CVS

- Apre le pagine di informazioni su &CVS; nel &khelpcenter;.

## Riconoscimenti e licenza

Copyright del programma

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

- © 2002-2008 degli autori di &cervisia;

Copyright della documentazione 1999-2002 di &Bernd.Gehrmann; &Bernd.Gehrmann.mail; e 2004 di Carlos Woelz carloswoelz@imap-mail.com

Traduzione del manuale a cura di Luciano Montanaro e Federico Zenith federico.zenith@member.fsf.org

&underFDL; &underGPL;