Manuale di Cervisia

# Manuale di Cervisia

Bernd Gehrmann `<bernd@mail.berlios.de>`

Carlos Woelz `<carloswoelz@imap-mail.com>`

Traduzione del manuale: Luciano Montanaro
Manutenzione e aggiornamento della traduzione: Federico Zenith
Revisione 3.11 (Applications 16.08) (16/06/2016)

Diritto d'autore © 1999, 2000, 2001, 2002 Bernd Gehrmann

Diritto d'autore © 2004 Carlos Woelz

Nota Legale

Cervisia fornisce una vista grafica per CVS.

Lista delle figure

2.1. Schermata della finestra di configurazione dell'accesso ai depositi di Cervisia
2.2. Una schermata della finestra di importazione di Cervisia
2.3. Schermata della finestra di prelievo di Cervisia
2.4. Schermata della vista principale di Cervisia
3.1. Schermata del menu contestuale di Cervisia
3.2. Schermata della finestra di deposito di Cervisia
3.3. Schermata della finestra di risoluzione dei conflitti di Cervisia
4.1. Schermata della finestra delle differenze di Cervisia
4.2. Schermata della finestra di patch di Cervisia
4.3. Schermata della vista delle annotazioni di Cervisia
4.4. Schermata della finestra per sfogliare i registri di Cervisia
4.5. Schermata della finestra della cronologia di Cervisia
5.1. Schermata della finestra di aggiornamento a tag di Cervisia

Capitolo 1. Introduzione
Introduzione

# Capitolo 1. 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.

Capitolo 2. Primi passi
Primi passi

# Capitolo 2. 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.

### Suggerimento

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.

Procedura 2.1. 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.

Figura 2.1. 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.

rsh

  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 rsh per questo; rsh è 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 rsh 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 rsh).

  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:

Procedura 2.2. 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
Importare un modulo nel deposito

## 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.

### Importante

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.

Figura 2.2. Una schermata della finestra di importazione di Cervisia

NelFigura 2.2, «Una schermata della finestra di importazione di Cervisia» 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: ❶

  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 la sezione chiamata «Accedere al deposito» per maggiori informazioni.

Modulo: ❸

  Il nome del modulo sotto cui sarà tenuto il progetto. Dopo l'importazione, il progetto potrà essere prelevato con questo nome. Vedi la sezione chiamata «Prelievo di un modulo dal deposito» 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: ❹

  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: ❺

  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 la sezione chiamata «File ignorati».

Commento: ❷

  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
Prelievo di un modulo dal deposito

## 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.

Figura 2.3. 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 la sezione chiamata «Accedere al deposito» 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
La schermata principale, con lo stato dei file e l'aggiornamento

## 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.

Figura 2.4. 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.

Capitolo 3. Lavorare coi file
Lavorare coi file

# Capitolo 3. 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.

Figura 3.1. Schermata del menu contestuale di Cervisia

Le azioni più comuni sono disponibili anche con un clic del tasto destro del mouse sui file della vista ad albero, con il menu contestuale; Figura 3.1, «Schermata del menu contestuale di Cervisia» mostra il menu contestuale della finestra principale di Cervisia.

Puoi modificare un file facendoci doppio clic o selezionandolo e premendo Invio. 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 tasto destro del mouse 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 tasto destro del mouse 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.

### Avvertimento

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
Eliminare i 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 tasto destro del mouse 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.

### Nota

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
Aggiungere e rimuovere le cartelle

## 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 tasto destro del mouse 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
Depositare i file

## 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 tasto destro del mouse sui file selezionati e scegli Deposita dal menu contestuale.

Figura 3.2. 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 Invio 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.

### Nota

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.

### Nota

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 nella sezione chiamata «Generale»). 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
Risolvere i conflitti

## 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 tasto destro del mouse sul file selezionato e scegli Risolvi dal menu contestuale.

Figura 3.3. 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.

Capitolo 4. Ottenere informazioni sui file e creare patch
Ottenere informazioni sui file e creare patch

# Capitolo 4. 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 tasto destro del mouse 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 Invio. È 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 la sezione chiamata «Sfogliare i registri di CVS»).

Come forse ti aspettavi, Cervisia non scarica semplicemente il risultato del comando diff sul terminale, ma produce una vista grafica come quella vista nelFigura 4.1, «Schermata della finestra delle differenze di Cervisia».

Figura 4.1. 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 la sezione chiamata «Visore delle differenze».

Creare patch
Creare patch

## 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 nella sezione chiamata «Esaminare le differenze tra le revisioni». 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.

### Importante

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.

Figura 4.2. 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
Esaminare la vista annotata di un file

## 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. NelFigura 4.3, «Schermata della vista delle annotazioni di Cervisia» puoi vedere una schermata di questa finestra.

Figura 4.3. 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
Sfogliare i registri di CVS

## 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.

Figura 4.4. 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 la sezione chiamata «Esaminare la vista annotata di un file».

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 la sezione chiamata «Esaminare le differenze tra le revisioni».

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 la sezione chiamata «Creare patch».

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
Sfogliare la cronologia

## 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

### Nota

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.

Figura 4.5. 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`.

Capitolo 5. Uso avanzato
Uso avanzato

# Capitolo 5. 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.

### Avvertimento

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.

Figura 5.1. 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).

### Nota

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
Tag e rami

## 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 Invio 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
Usare gli osservatori

## 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
Blocco

## 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

Capitolo 6. Personalizzare Cervisia
Personalizzare Cervisia

# Capitolo 6. 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
Visore delle differenze

## 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
Stato

## 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
Avanzate

## 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 (rsh), la shell remota ssh per comunicare con il deposito e ssh-agent per gestire le tue chiavi.

Aspetto
Aspetto

## 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.

Capitolo 7. Appendice
Appendice

# Capitolo 7. 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
Altre informazioni e supporto

## 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
Guida ai comandi

## Guida ai comandi

### Il menu File

File → Apri copia locale... (Ctrl+O)

  Apre una copia locale nella finestra principale. Vedi la sezione chiamata «La schermata principale, con lo stato dei file e l'aggiornamento».

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 la sezione chiamata «Depositare i file».

File → Aggiorna (Ctrl+U)

  Esegue il comando `cvs `update`` sui file selezionati e quindi modifica lo stato e i numeri di revisione. Vedi la sezione chiamata «La schermata principale, con lo stato dei file e l'aggiornamento».

File → Stato (F5)

  Esegue il comando `cvs `-n` `update`` sui file selezionati e quindi modifica lo stato e i numeri di revisione. Vedi la sezione chiamata «La schermata principale, con lo stato dei file e l'aggiornamento».

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 la sezione chiamata «Risolvere i conflitti».

File → Deposita (#)

  Permette di depositare i file selezionati. Vedi la sezione chiamata «Depositare i file».

File → Aggiungi al deposito (Ins)

  Permette di aggiungere i file selezionati al deposito. Vedi la sezione chiamata «Aggiungere i file».

File → Aggiungi file binario

  Permette di aggiungere i file selezionati come file binari (`cvs `add` `-kb``). Vedi la sezione chiamata «Aggiungere i file».

File → Rimuovi dal deposito (Del)

  Permette di rimuovere i file selezionati dal deposito. Vedi la sezione chiamata «Eliminare i file».

File → Scarta modifiche

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

File → Esci (Ctrl+Q)

  Esce da Cervisia.

### Il menu Visualizza

Visualizza → Interrompi (Esc)

  Interrompe tutti i sottoprocessi in esecuzione.

Visualizza → Sfoglia registro (Ctrl+L)

  Mostra il navigatore dei registri per le versioni del file selezionato. Vedi la sezione chiamata «Sfogliare i registri di CVS».

Visualizza → Annotazioni (Ctrl+A)

  Mostra una vista annotata del file selezionato, cioè una vista in cui si può vedere l'ultimo autore di ogni riga. Vedi la sezione chiamata «Esaminare la vista annotata di un file».

Visualizza → Confronta col deposito (BASE) (Ctrl+D)

  Mostra le differenze tra il file selezionato nella copia locale e la revisione dell'ultimo aggiornamento (BASE). Vedi la sezione chiamata «Esaminare le differenze tra le revisioni».

Visualizza → Confronta col deposito (HEAD) (Ctrl+H)

  Mostra le differenze tra il file selezionato nella cartella di lavoro e l'ultima revisione sul server (HEAD). Vedi la sezione chiamata «Esaminare le differenze tra le revisioni».

Visualizza → Ultima modifica

  Mostra le differenze tra la revisione del file selezionato dell'ultimo aggiornamento (BASE) e quella precedente. Vedi la sezione chiamata «Esaminare le differenze tra le revisioni».

Visualizza → Cronologia

  Mostra la cronologia di CVS come riportata dal server. Vedi la sezione chiamata «Sfogliare la cronologia».

Visualizza → Nascondi tutti i file

  Determina se mostrare solo le cartelle nella vista ad albero principale. Vedi la sezione chiamata «La schermata principale, con lo stato dei file e l'aggiornamento».

Visualizza → Nascondi file immutati

  Determina se nascondere i file sconosciuti e quelli aggiornati dalla vista ad albero principale. Vedi la sezione chiamata «La schermata principale, con lo stato dei file e l'aggiornamento».

Visualizza → Nascondi i file rimossi

  Determina se nascondere i file eliminati della vista ad albero principale. Vedi la sezione chiamata «La schermata principale, con lo stato dei file e l'aggiornamento».

Visualizza → Nascondi i file non gestiti da CVS

  Determina se nascondere i file non presenti in CVS nella vista ad albero principale. Vedi la sezione chiamata «La schermata principale, con lo stato dei file e l'aggiornamento».

Visualizza → Nascondi le cartelle vuote

  Determina se nascondere le cartelle senza elementi visibili dalla vista ad albero principale. Vedi la sezione chiamata «La schermata principale, con lo stato dei file e l'aggiornamento».

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 la sezione chiamata «La schermata principale, con lo stato dei file e l'aggiornamento».

Visualizza → Chiudi l'albero dei file

  Chiude tutti i rami dell'albero dei file. Vedi la sezione chiamata «La schermata principale, con lo stato dei file e l'aggiornamento».

### Il menu Avanzate

Avanzate → Crea tag o ramo

  Applica un tag ai file selezionati, o creane un ramo. Vedi la sezione chiamata «Tag e rami».

Avanzate → Elimina tag

  Elimina un tag dai file selezionati. Vedi la sezione chiamata «Tag e rami».

Avanzate → Aggiorna a tag o data

  Porta i file selezionati ad una certa data o tag, permanentemente. Vedi la sezione chiamata «Aggiornare a tag, ramo o data».

Avanzate → Aggiorna a HEAD

  Porta i file selezionati alle rispettive versioni di HEAD. Vedi la sezione chiamata «Aggiornare a tag, ramo o data».

Avanzate → Fondi

  Fonde un ramo o le modifiche tra due tag nei file selezionati. Vedi la sezione chiamata «Tag e rami».

Avanzate → Aggiungi osservatore

  Aggiunge un osservatore per una serie di eventi ai file selezionati. Vedi la sezione chiamata «Usare gli osservatori».

Avanzate → Rimuovi osservatore

  Elimina un osservatore per una serie di eventi dai file selezionati. Vedi la sezione chiamata «Usare gli osservatori».

Avanzate → Mostra osservatori

  Elenca gli osservatori dei file selezionati. Vedi la sezione chiamata «Usare gli osservatori».

Avanzate → Impegna i file

  Esegue `cvs `edit`` sui file selezionati. Vedi la sezione chiamata «Usare gli osservatori».

Avanzate → Disimpegna i file

  Esegue `cvs `unedit`` sui file selezionati. Vedi la sezione chiamata «Usare gli osservatori».

Avanzate → Mostra redattori

  Esegue `cvs `editors`` sui file selezionati. Vedi la sezione chiamata «Usare gli osservatori».

Avanzate → Blocca i file

  Blocca i file selezionati. Vedi la sezione chiamata «Blocco».

Avanzate → Sblocca i file

  Sblocca i file selezionati. Vedi la sezione chiamata «Blocco».

Avanzate → Crea patch relativa al deposito

  Crea una patch partendo dalle modifiche nella copia locale. Vedi la sezione chiamata «Creare patch».

### Il menu Deposito

Deposito → Crea

  Apre una finestra che permette di creare un nuovo deposito locale. Vedi la sezione chiamata «Accedere al deposito».

Deposito → Prelievo

  Apre una finestra che permette di prelevare un modulo da un deposito. Vedi la sezione chiamata «Prelievo di un modulo dal deposito».

Deposito → Importa

  Apre una finestra che permette di importare un pacchetto nel deposito. Vedi la sezione chiamata «Importare un modulo nel deposito».

Deposito → Depositi

  Configura un elenco di depositi di uso comune e come accedervi. Vedi la sezione chiamata «Accedere al deposito».

### 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.

Capitolo 8. Riconoscimenti e licenza
Riconoscimenti e licenza

# Capitolo 8. Riconoscimenti e licenza

Copyright del programma

- © 1999-2002 Bernd Gehrmann `(bernd AT mail.berlios.de)`

- © 2002-2008 degli autori di Cervisia

Copyright della documentazione 1999-2002 di Bernd Gehrmann `(bernd AT mail.berlios.de)` e 2004 di Carlos Woelz carloswoelz@imap-mail.com

Traduzione del manuale a cura di Luciano Montanaro e Federico Zenith `(federico.zenith AT member.fsf.org)`

Questa documentazione è concessa in licenza sotto i termini della GNU Free Documentation License.

Questo programma è concesso in licenza sotto i termini della GNU General Public License.