27.4. Introduzione a CVS

CVS può essere usato per la sincronizzazione se i file vengono modificati frequentemente e salvati in formato file, ad esempio come testi ASCII o come testi di sorgenti di programmi. Benché CVS possa essere usato per sincronizzare dati anche in altri formati, come i file JPEG, l'operazione richiede una grande quantità di spazio libero su disco, perché il programma salva tutte le varianti dei file in modo permanente sul server CVS. Quindi, in questi casi non è possibile usare la maggior parte delle funzioni di CSV. Questo programma può essere usato per sincronizzare i file solo se tutte le workstation possono accedere allo stesso server.

27.4.1. Configurazione di un server CVS

Il server in questo caso è l'host su cui sono ubicati tutti i file validi, comprese le ultime versioni dei file. È possibile configurare come server qualunque workstation fissa. Se possibile, è opportuno includere nei normali backup anche i dati dell'archivio di CVS.

Quando si configura il server CVS, può essere utile autorizzare gli utenti ad accedere al server tramite SSH. Se l'utente viene identificato dal server come tux e CVS è installato sia sul server che sul client, è necessario impostare le seguenti variabili di ambiente sul lato client:


CVS_RSH=ssh CVS_ROOT=tux@server:/serverdir

Il comando cvs init può essere usato per inizializzare il server CVS sul lato client. Questa operazione deve essere effettuata una sola volta

Infine, è necessario assegnare un nome alla sincronizzazione. Selezionare o creare una directory sul client e verificare che contenga solo i file che devono essere gestiti tramite CVS (la directory può anche essere vuota). Il nome della directory è anche quello della sincronizzazione. In questo esempio la directory è denominata synchome. Selezionare questa directory e immettere i seguenti comandi per impostare il nome della sincronizzazione su synchome:


cvs import synchome tux wilber

Molti comandi CVS richiedono un commento. Quindi, CVS avvia l'editor (definito nella variabile di ambiente $EDITOR o vi se non è stato definito alcun editor). Per evitare che venga visualizzato l'editor, è possibile anche immettere direttamente il commento tramite la riga di comando, come nel seguente esempio:


cvs import -m 'this is a test' synchome tux wilber

27.4.2. Uso di CVS

A questo punto l'archivio relativo alla sincronizzazione può essere controllato da tutti gli host tramite il comando cvs co synchome. Questa operazione provoca la creazione di una nuova directory, synchome, sul client. Per salvare le modifiche sul server, selezionare la directory synchome (o una delle sue sottodirectory) e immettere cvs commit.

Per default vengono salvati sul server tutti i file (comprese le sottodirectory). Per salvare solo file o directory specifici, specificarli come in cvs commit file1 directory1. I nuovi file e le nuove directory devono essere aggiunti all'archivio con un comando come cvs add file1 directory1 prima del salvataggio sul server. Per salvare successivamente i nuovi file e le nuove directory aggiunti, usare il comando cvs commit file1 directory1.

A questo punto è possibile passare a un'altra workstation, controllare l'archivio della sincronizzazione, sempre che questa operazione non sia già stata eseguita sulla workstation in una sessione precedente (vedere la sezione precedente).

Per avviare la sincronizzazione del server, usare il comando cvs update. Aggiornare i singoli file o le singole directory come in cvs update file1 directory1. Per visualizzare le differenze tra i file correnti e le versioni salvate sul server, usare il comando cvs diff o cvs diff file1 directory1. Usare il comando cvs -nq update per visualizzare i file che verrebbero modificati dall'aggiornamento.

Di seguito sono elencati alcuni dei simboli di stato visualizzati durante le operazioni di aggiornamento:

U

Indica che la versione locale è stata aggiornata. L'aggiornamento si applica a tutti i file forniti dal server e non presenti sul sistema locale.

M

Indica che è stata modificata la versione locale. Se sono state rilevate modifiche sul server, è possibile unire le differenze nella copia locale.

P

Indica che la versione locale è stata unita con quella del server.

C

Indica che il file locale è in conflitto con la versione corrente nell'archivio.

?

Indica che il file non esiste in CVS.

Lo stato M viene usato per identificare un file modificato localmente. In questo caso è possibile salvare la copia locale sul server oppure rimuovere il file locale ed eseguire nuovamente l'aggiornamento per consentire il recupero del file mancante dal server. Se si salva il file modificato localmente e contemporaneamente si salva e si modifica un file sulla stessa riga di comando, viene generato un errore indicato con C.

In questo caso è necessario ricercare i contrassegni relativi ai conflitti (»> e «<) nel file e decidere quale delle due versioni usare. Poiché questa operazione richiede molto tempo, è talvolta preferibile annullare le modifiche, eliminare il file locale e immettere cvs up per recuperare la versione corrente dal server.

27.4.3. Ulteriori informazioni

Questa sezione fornisce solo una panoramica generale delle numerose opzioni offerte da CVS. Per consultare la documentazione completa, visitare il sito Web:

http://www.cvshome.org/
http://www.gnu.org/manual/