7205
Commento:
|
7143
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 114: | Linea 114: |
== Elencare differenze == E' possibile ottenere un elenco |
Cvs, ovvero Concurrent (o Current) Version System, è un sistema di controllo di revisione (o di versione) il cui scopo è quello di gestire più versioni (o appunto revisioni) del medesimo codice sorgente agendo direttamente sul tree remoto. I cambiamenti effettuati sul codice sorgenti vengono automaticamente registrati con un autoincremento di un dato valore numerico che viene assegnato ad ogni modifica.
Il lato positivo di questa tecnologia è il poter tenere sotto controllo qualsiasi cambiamento effettuato dagli addetti ai lavori, avendo la possibilità di tornare indietro a revisioni precedenti nel caso di errori o manomissioni volontarie al codice sorgente. Indubbia è anche la possibilità di collaborazione estesa che grazie a questo sistema diviene semplice dato che un gruppo di persone può lavorare liberamente allo stesso codice sorgente modificando il tree remoto ed aggiornando la loro copia locale in relazione a modifiche di altri sviluppatori.
Installazione client
Per utilizzare cvs su piattaforma linux si utilizza cvs, il client opensource. In ubuntu esso si trova nei repositories ed è installabile con il seguente comando
sudo apt-get install cvs
Cvsroot
Cvsroot è una variabile molto importante per il lavoro mediante cvs. L'averla settata correttanente ci permette di poter effettuare operazioni sul repository che scegliamo senza dover ripetere ogni volta la sua locazione ed il nostro login. Ovviamente questo si adatta a chi ha a che fare specialmente con un solo repository cvs.
Il modo più semplice per settare questa variabile è:
CVSROOT=:pserver:nomeutente@dominio.it:/percorso/al/cvs
pserver è il metodo di connessione/autenticazione e sta per password authenticated server
nomeutente è il vostro nome utente per quel dominio. Nel caso dobbiate effettuare solo un checkout può essere anche anonimo, ovvero anonymous
dominio.it è il dominio completo di eventuale sottodominio a cui dovete collegarvi (molto spesso è del tipo cvs.dominio.it)
/percorso/al/cvs è il path assoluto alla directory contenente il tree cvs che dovete modificare/prelevare
Una volta settata dovete ovviamente esportarla
export CVSROOT
Così che possa essere usata dal programma. Per controllare che tutto sia andato a buon fine provate a dare
echo $CVSROOT
E controllate che l'output sia quello da voi inserito in precedenza.
Checkout
L'operazione più semplice e comune per la maggioranza degli utenti è quella di checkout, ovvero di copia del tree remoto di un programma in una cartella locale. il comando da passare al programma è co e la sintassi è la seguente.
cvs -d :pserver:nomeutente@dominio.it:/percorso/al/cvs co cartella
-d indica la necessità di specificare un dominio di lavoro
:pserver: nomeutente_dominio.it :/percorso/al/cvs indica il dominio, il metodo di autenticazione e la cartella di lavoro
co è il comando che vogliamo eseguire, ovvero il checkout
cartella è il nome della cartella locale in cui sarà salvato il tree
oppure se avete già settato correttamente la variabile [#var Cvsroot]
cvs co cartella
Creare un repository
Per creare un nuovo tree sia remoto che locale il comando utilizzato è sempre import. La sintassi generale di utilizzo è
cvs -d :pserver:nomeutente@dominio.it:/percorso/al/cvs import -m "primo import in CVS" nomeprogetto vendortag releasetag
-d indica la specificazione di un dominio di lavoro
:pserver: nomeutente_dominio.it :/percorso/al/cvs indica il dominio, il metodo di autenticazione e la cartella di lavoro
import è il comando utilizzato
-m "primo import in CVS" specifica un piccolo commento da associare alla creazione
nomeprogetto è il nome del tree e non necessariamente deve corrispondere alla directory di lavoro anche se in molti casi si preferisce così
vendortag releasetag sono due parameti avanzati la cui configurazioen va oltre gli scopi di questa guida. Se volete maggiori informazioni consultate [http://cvsbook.red-bean.com/cvsbook.html#Advanced%20CVS questa] pagina. Altrimenti potete sostituirli con i parametri di default jrandom start
Come vedete il comando è complesso e generalmente se create un tree remoto ci lavorerete spesso ed è pertanto conveniente usare la variabile [#var Cvsroot] per semplificare la sintassi. Nel caso di utilizzo di cvsroot il comando diviene
cvs import -m "initial import into CVS" myproj vendortag releasetag
Perchè questo comando dia i risultati aspettati dovete ovviamente darlo dopo aver navigato mediante terminale all'interno della cartella contenente i files del progetto. Ad esempio se volete importare dei files presenti nella cartella cvs del vostro Desktop il comando da dare prima di cvs import è
cd Desktop/cvs
Altre Operazioni
Per l'esplicazione dei seguenti comandi si fa riferimento ad un sistema in cui sia già stata configurata la variabile [#var Cvsroot]. In caso contrario in ogni comando dovrete aggiungere -d :pserver:nomeutente@dominio.it:/percorso/al/cvs.
Aggiungere files o cartelle
Per aggiungere un file o una cartella (automaticamente in modo ricorsivo, indi comprendente tutti i files e le sottocartelle al suo interno) al nostro tree si utilizza il comando add con la sintassi
cvs add file cvs add cartella
Rimuovere files o cartelle
Per rimuovere un file o una cartella (anche in questo caso ricorsivamente) si usa il comando rm
cvs rm file cvs rm cartella
Alcune limitazioni di cvs
Purtroppo il metodo cvs ha alcune limitazioni in operazioni di utilizzo comune ed è per questo che spesso si preferisce usare [:Subversion:SVN] al suo posto. Ad esempio non è possibile copiare files o cartelle oppure muovere files o cartelle direttamente da cvs o ancora non è supportato il mero listing dei files senza checkout. Queste operazioni devono essere fatte con altri strumenti ad esempio ssh, pregiudicando così la loro registrazione nelle modifiche effettuate al tree e conseguente aggiornamento di versione.
Inoltre il login deve essere sempre effettuato mediante il parametro user[at]dominio e non può essere lasciato al server il compito di richiedere username e password con in [:Subversion:SVN]
Fonti
Per la realizzazione di questa guida sono state utilizzate le informazioni dei seguenti documenti