Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 5 del 17/02/2007 20.06.42

Nascondi questo messaggio

BR

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

Anchor(var)

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

Elencare differenze

E' possibile ottenere un elenco

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