Questa piccola guida all'utilizzo di CVS non vuole in alcun modo essere esaustiva, né sostituirsi alla guida utente (di 120 pagine) /usr/doc/cvs-1.9/cvs.ps o alla man-page di CVS (per altro estremamente scarna, datata e sicuramente incompleta). Vuole solamente fornire quell'insieme minimo di comandi necessari per iniziare l'utente ancora ignorante all'utilizzo di CVS.
I comandi di seguito esposti sono solo una piccola parte di quelli disponibili e non permettono di accedere a tutte quelle funzionalità che rendono indispensabile l'utilizzo di un ambiente quale CVS nel lavoro di gruppo. Sono però sufficienti a permettere di iniziare a lavorare fin da subito in modo proficuo, con l'intenzione che l'utente contemporaneamente inizi la lettura del manuale per imparare i restanti comandi e l'utilizzo di quelli già visti in maniera più avanzata ed approfondita.
ContenutiCVS è un sistema di controllo delle versioni. Lo posso utilizzare ogni volta che ho la necessità di lavorare con più persone contemporaneamente alla stesura di un documento.
ContenutiCVS mi permette di modificare i file in comune senza preoccuparmi del fatto che altre persone stiano facendo lo stesso. Infatti CVS si preoccupa per me di mantenere tutte le versioni successive dello stesso file e di risolvere (chiedendomi come) gli eventuali conflitti fra le mie modifiche e quelle degli altri.
ContenutiPer condividere il mio progetto con altri tramite CVS è necessario che il mio gid sia quello del gruppo del quale sia io che i miei compagni facciamo parte. Tale gruppo deve essere creato chiedendo a quei poveretti degli amministratori di sistema (sí, questa guida è stata scritta da un amministratore).
Inoltre, mi devo sempre ricordare, prima di modificare un progetto tramite CVS, di settare il mio gid a quello del gruppo tramite newgrp.
Infine, è necessario che setti (per esempio nel .bash_profile o nel .login) la variabile d'ambiente CVSROOT a /home/CVS
ContenutiIpotizzando di voler creare un progetto condiviso con i membri del gruppo disney composto da una directory chiamata pippo contenente un file vuoto chiamato pluto, faccio in questo modo:
newgrp disney mkdir pippo cd pippo touch pluto cvs import pippo disney versione0 cd .. rm -rf pippo cvs checkout pippodove pippo è il nome della directory dove verrà mantenuto il progetto, versione0 è il nome della versione iniziale del progetto.
ATTENZIONE: mi verrà chiesto di scrivere qualche riga nel log di progetto per spiegare che cosa sto facendo utilizzando il mio editor preferito (quello indicato dalla variabile di ambiente EDITOR). Nel caso non abbia specificato tale variabile, sarò condannato all'utilizzo di vi.
ContenutiPer aggiungere, per esempio, il file paperino alla directory pippo creata al punto 5 faccio in questo modo:
cd pippo touch paperino cvs add paperinoIn seguito debbo ricordarmi di fare il commit delle modifiche come spiegato al punto 9. Contenuti
Lo modifico (come mi pare) e basta! Debbo solo ricordarmi in seguito di fare il commit delle modifiche (vedi punto 9).
ContenutiPrima lo cancello (come mi pare) e poi comunico a CVS di averlo fatto volutamente. Per esempio per cancellare il file pluto dalla directory disney creata al punto 5 procedo in questo modo:
rm pluto cvs remove plutoIn seguito debbo ricordarmi di fare il commit delle modifiche come spiegato al punto 9. Contenuti
È sufficiente che io faccia cvs commit all'interno della directory del progetto che ho modificato. Se ci sono conflitti con le modifiche dei miei compagni, il commit non sarà possibile e dovrò fare un update (vedi punto 12).
ContenutiOgni volta che faccio commit (vedi punto 9), è bene che esplicitamente dichiari di voler rilasciare una nuova release in modo da far verificare a CVS che non ci siano file in conflitto o cose strane. Dopo aver rilasciato la release debbo cancellare la directory del progetto.
Per esempio, per rilasciare una nuova release del progetto pippo creato al punto 5 debbo procedere in questo modo:
cd .. # ora sono nella directory contenente la directory pippo cvs release pippo rm -rf pippoContenuti
Per esempio, per accedere all'ultima versione del progetto contenuto nella directory pippo faccio così: cvs checkout pippo
ContenutiPer fare l'update del progetto, è sufficiente che io mi porti nella directory contenente la mia ultima versione del progetto e scriva cvs update . Eventuali conflitti con quella esistente mi verranno fatti notare e potrò risolverli manualmente editando i file in conflitto (i conflitti saranno stati evidenziati nel file per aiutarmi ad individuarli).
ContenutiÈ sufficiente che io setti opportunamente la CVSROOT e poi faccia login prima di dare gli altri comandi e logout quando ho finito (pena non poter fare login nuovamente). Ci sono diversi protocolli per accedere ai repository remoti; la forma della CVSROOT indica il protocollo voluto. Quello più diffuso è quello con autenticazione con password che richiede questa sintassi sintassi per la CVSROOT è:
:pserver:username@hostname:pathPer esempio, per collegarsi al repository anonimous di Gnome debbo usare
:pserver:anonymous@anoncvs.gnome.org:/cvs/gnomePer fare login il comando è semplicemente
cvs loginMi viene chiesta una password che debbo lasciare vuota nel caso di repository CVS anonimi.
cvs logoutContenuti