Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Programmazione/Cvs"
Differenze tra le versioni 1 e 5 (in 4 versioni)
Versione 1 del 17/02/2007 19.39.01
Dimensione: 5196
Commento: Prima stesura mancano ancora molte cose
Versione 5 del 17/02/2007 20.06.42
Dimensione: 7205
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 2: Linea 2:
||<tablebgcolor="red" tablewidth="100%" tablestyle="margin: 0pt; font-size: 18px; text-align: center;"style="padding: 0.5em;">'''ATTENZIONE: Questa pagina è in fase di creazione...''' ||
Linea 4: Linea 4:
||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">[[TableOfContents]]|| ||<tablebgcolor="#f1f1ed" tablewidth="35%" tablestyle="margin: 0pt 0pt 1em 1em; float: right; font-size: 0.9em;"style="padding: 0.5em;">[[TableOfContents]]||
Linea 6: Linea 6:
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. '''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.
Linea 11: Linea 11:

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
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
Linea 20: Linea 19:

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.
'''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''.
Linea 28: Linea 26:
 * 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

* '''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
Linea 48: Linea 47:

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.
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.
Linea 55: Linea 53:
 * -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
 * co è il comando che vogliamo eseguire, ovvero il checkout
 * cartella è il nome della cartella locale in cui sarà salvato il tree
 * '''-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
Linea 60: Linea 58:
oppure se avete già settato correttamente la variabile [#var Cvsroot]  oppure se avete già settato correttamente la variabile [#var Cvsroot]
Linea 67: Linea 65:

Per creare un nuovo tree sia remoto che locale il comando utilizzato è sempre import. La sintassi generale di utilizzo è
Per creare un nuovo tree sia remoto che locale il comando utilizzato è sempre '''import'''. La sintassi generale di utilizzo è
Linea 74: Linea 71:
 * -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
 * '''-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'''
Linea 81: Linea 78:
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 che diviene 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
Linea 87: Linea 84:
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]
Linea 89: Linea 125:
Per la realizzazione di questa guida sono state utilizzate le informazioni dei seguenti documenti
Linea 90: Linea 127:
Per la realizzazione di questa guida sono state utilizzate le informazioni dei seguenti documenti
Linea 96: Linea 132:
CategoryNuoviDocumenti  . CategoryNuoviDocumenti 

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