CVS può essere utilizzato anche ai fini della sincronizzazione, quando si modificano frequentemente singoli file nel formato di testo ASCII oppure sorgenti di programmi. Con CVS si possono sincronizzare anche dati in altri formati (p.es. file JPEG), ma questo comporta un enorme volume di dati, visto che ogni variante di un file viene memorizzata permanentemente sul server CVS. Ed inoltre in questi casi non si sfrutta appieno il vero potenziale di CVS. Si consiglia di ricorrere a CVS per la sincronizzazione dei dati solo se tutte le postazioni di lavoro hanno accesso allo stesso server!
Il server è host su cui si trovano tutti i file validi, ovvero soprattutto la versione attuale di ogni file. Una una postazione di lavoro fissa può fungere da server. E' consigliabile eseguire regolarmente un back-up dei dati che risiedono sul server CVS (repository).
Si consiglia di impostare un server CVS
in modo che agli utenti sia permesso di accedervi tramite SSH.
Se l'utente è noto al server come tux
ed il software del CVS è stato installato sia sul server che sul
client (p.es. un notebook), sul lato client bisogna impostare le seguenti
variabili di ambiente:
CVS_RSH=ssh CVS_ROOT=tux@server:/serverdir
Con il comando cvs init
si inizializza il server CVS dal lato client
(basta farlo una sola volta).
Infine bisogna stabilire un nome per la sincronizzazione. Selezionate
o create una directory sul client che dovrà contenere i file che
dovranno essere amministrati da CVS (la directory può essere anche
vuota). Il nome della directory è nel contempo il nome del processo di
sincronizzazione. Nel nostro esempio utilizziamo il
nome synchome. Per impostare il nome della
sincronizzazione su synchome si deve immettere:
cvs import synchome tux wilber
Attenzione: molti comandi CVS richiedono un commento. A tale scopo
CVS lancia un editor (più precisamente l'editor definito nella variabile di
ambiente $EDITOR, altrimenti lancia il vi).
Si può evitare che venga lanciato l'editor immettendo il commento già
nella riga di comando, ad es
cvs import -m 'questa è una prova' synchome tux wilber
A partire da questo momento si può effettuare da un computer qualsiasi
il check out dal repository di sincronizzazione con
cvs co synchome.
Si avrà una nuova sottodirectory synchome sul client. Se
si sono fatte delle modifiche che si vogliono comunicare al server, bisogna
entrare nella directory synchome (o anche
in una sottodirectory di synchome) ed immettere il seguente comando:
cvs commit.
Con questo comando vengono trasmessi al server tutti i file della
la directory (sottodirectory incluse). Per trasferire solo singoli file e/o
singole directory, si dovranno indicare esplicitamente con un comando
del tipo:
cvs commit file1 directory1.
Nuovi file o nuove directory vanno aggiunte alla repository tramite
un comando del tipo:
cvs add file1 directory1, prima di trasferirli sul server. Di conseguenza
il commit di nuovi file e directory che si sono aggiunti si esegue
tramite cvs commit file1 directory1.
Se cambiate postazione di lavoro, dovrete, se non lo avete già fatto durante delle sessioni di lavoro precedenti sulla stessa postazione, eseguire il check out del repository (si veda sopra).
La sincronizzazione con il server viene inizializzata con:
cvs update.
Sussiste inoltre la possibilità di eseguire l'update di singoli file e/o
singole directory eseguendo
cvs update file1
directory1.
Se volete vedere in anteprima le differenze rispetto alle versioni
memorizzate sul server, immettete cvs diff
o cvs diff file1 directory1.
In più avete anche la possibilità di farvi mostrare quali file verrebbero
aggiornati, ecco il comando:
cvs -nq update.
Durante l'update incontrerete tra l'altro le seguenti lettere indicanti lo stato del file:
la versione locale è stata aggiornata.
la versione locale è stata modificata.
la versione locale è stata adattata (ingl. patched) in base alla versione sul server.
il file locale non collima con la versione attuale nel repository.
questo file non esiste nel CVS.
M indica un file che è stato modificato.
Potete spedire la versione locale al server o cancellare il file
locale e si esegue nuovamente un update. Se diversi utenti modificano
lo stesso file nello stesso punto, CVS non è in grado di decidere quale
versione utilizzare. In questi casi all'update si ha una
C che indica la presenza di un conflitto.
In tal caso prendete spunto dai marcatori di conflitto e decidete quale
delle due versioni scegliere. Visto che a volte non è per niente
semplice prendere una tale decisione, potete anche optare di
scartare le vostre modifiche, cancellare il file locale e immettere
cvs up
per recuperare la versione attuale dal server.