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 7 e 9 (in 2 versioni)
Versione 7 del 17/02/2007 22.11.36
Dimensione: 7150
Commento: alcune correzioni
Versione 9 del 17/02/2007 23.01.07
Dimensione: 7173
Commento: altre correzioni e rifiniture
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 4: Linea 4:
||<tablebgcolor="#f1f1ed" tablewidth="35%" tablestyle="margin: 0pt 0pt 1em 1em; float: right; font-size: 0.9em;"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;">'''Indice'''[[TableOfContents(1)]]||
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 sorgente vengono automaticamente registrati con un ''autoincremento'' di un dato valore numerico o alfanumerico che indica univocamente la revisione. = Introduzione =
Linea 8: Linea 8:
Il punto di forza di questa tecnologia è il poter tenere sotto controllo qualsiasi cambiamento effettuato dagli addetti ai lavori, avendo la possibilità di tornare 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. '''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 sorgente vengono automaticamente registrati con un ''autoincremento'' di un dato valore numerico o alfanumerico che indica univocamente la revisione.
Linea 10: Linea 10:
= 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
= Caratteristiche =
Linea 13: Linea 12:
{{{ Il punto di forza di questa tecnologia è il poter tenere sotto controllo qualsiasi cambiamento effettuato dagli sviluppatori, avendo la possibilità di tornare a revisioni precedenti nel caso di errori o manomissioni volontarie al codice sorgente.[[BR]]Indubbia è anche la possibilità di collaborazione estesa che grazie a questo sistema diviene semplice: un gruppo di persone può infatti lavorare liberamente allo stesso codice sorgente modificando il tree remoto ed aggiornando la propria copia locale in relazione a modifiche di altri sviluppatori.

= Installazione del 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:{{{
Linea 19: Linea 22:
'''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 21: Linea 23:
Il modo più semplice per settare questa variabile è: '''Cvsroot''' è una variabile molto importante per il lavoro mediante ''cvs''. La corretta impostazione permette di operare sul repository scelto senza dover ripetere ogni volta la sua locazione e la procedura del login. Ovviamente questo si adatta a chi ha a che fare specialmente con un solo repository ''cvs''.
Linea 23: Linea 25:
{{{ Il modo più semplice per impostare questa variabile è:{{{
Linea 27: Linea 29:
 * '''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 nome utente per un dato dominio. Nel caso di un semplice ''checkout'', può anche essere anonimo: fornire ''anonymous'' come stringa.
 * '''dominio.it''' è il domini
o, completo di eventuale sottodominio, cui collegarsi (molto spesso è del tipo cvs.dominio.it)
 * '''/percorso/al/cvs''' è il path assoluto alla directory contenente il tree cvs da modificare/prelevare.
Linea 32: Linea 34:
Una volta settata dovete ovviamente esportarla

{{{
Una volta impostata è necessario esportarla:{{{
Linea 38: Linea 38:
Così che possa essere usata dal programma. Per controllare che tutto sia andato a buon fine provate a dare

{{{
Così che possa essere usata dal programma. Per controllare che tutto sia andato a buon fine, eseguire:{{{
Linea 44: Linea 42:
E controllate che l'output sia quello da voi inserito in precedenza. Controllare che l'output sia quello inserito in precedenza.
Linea 47: Linea 45:
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 49: Linea 46:
{{{ 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 directory locale. Il comando da passare al programma è '''co''' e la sintassi è la seguente:{{{
Linea 53: Linea 50:
 * '''-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
 * '''-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 directory di lavoro;
 * '''co''' è il comando da eseguire, ovvero il checkout;
 * '''directory''' è il nome della directory locale in cui sarà salvato il tree.
Linea 58: Linea 55:
oppure se avete già settato correttamente la variabile [#var Cvsroot]

{{{
cvs co cartella
oppure avendo già impostato correttamente la variabile [#var Cvsroot]:{{{
cvs co directory
Linea 65: Linea 60:
Per creare un nuovo tree sia remoto che locale il comando utilizzato è sempre '''import'''. La sintassi generale di utilizzo è
Linea 67: Linea 61:
{{{ Per creare un nuovo tree sia remoto che locale il comando utilizzato è sempre '''import'''. La sintassi generale di utilizzo è:{{{
Linea 72: Linea 66:
 * ''':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'''
 * ''':pserver: nomeutente_dominio.it :/percorso/al/cvs''' indica il dominio, il metodo di autenticazione e la directory di lavoro;
 * '''import''' è il comando utilizzato;
 * '''-m "primo import in CVS"''' specifica un piccolo commento da associare alla creazione;
 * '''nomeprogetto''' è il nome del tree. Non necessariamente deve corrispondere alla directory di lavoro (anche se in molti casi si preferisce così);
 * '''vendortag releasetag''' sono due parametri avanzati la cui configurazione va oltre gli scopi di questa guida.
Linea 78: Linea 72:
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 ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">Per maggiori informazioni consultare [http://cvsbook.red-bean.com/cvsbook.html#Advanced%20CVS questa] pagina. Altrimenti sostituirli con i parametri di default: '''jrandom start'''.||
Linea 80: Linea 74:
{{{ Il comando è complesso e di utilizzo frequente su tree remoti: è pertanto conveniente usare la variabile [#var Cvsroot] per semplificare la sintassi. Nel caso di utilizzo di ''cvsroot'' il comando diviene:{{{
Linea 84: Linea 78:
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'' è

{{{
Perché questo comando dia i risultati aspettati è necessario eseguirlo dopo aver navigato mediante terminale '''all'interno''' della cartella contenente i files del progetto. Ad esempio volendo importare dei files presenti nella directory ''cvs'' del proprio ''Desktop'' il comando da eseguire ''prima'' di '''cvs import''' è:{{{
Linea 92: Linea 84:
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}}}. 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 aggiungere: {{{
-d :pserver:nomeutente@dominio.it:/percorso/al/cvs
}}}
Linea 94: Linea 88:
== Aggiungere files o cartelle == == Aggiungere file o directory ==
Linea 96: Linea 90:
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

{{{
Per aggiungere un file o una cartella (automaticamente ''in modo ricorsivo'', indi comprendente tutti i file e le sottodirectory al suo interno) al tree si utilizza il comando '''add''' con la sintassi:{{{
Linea 100: Linea 92:
Linea 104: Linea 95:
== Rimuovere files o cartelle == == Rimuovere file o directory ==
Linea 106: Linea 97:
Per rimuovere un file o una cartella (anche in questo caso ricorsivamente) si usa il comando '''rm'''

{{{
Per rimuovere un file o una directory (anche in questo caso ricorsivamente) si usa il comando '''rm''':{{{
Linea 110: Linea 99:
Linea 117: Linea 105:
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. Purtroppo il metodo cvs ha alcune limitazioni in operazioni di utilizzo comune ed è per questo che spesso, al suo posto, si preferisce usare [:Subversion:SVN].
Linea 119: Linea 107:
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]  * Non è possibile __copiare__ file o directory oppure __muovere__ file o directory direttamente da ''cvs'';
 * Non è ancora supportato il mero ''listing'' dei file 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;
 * 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 come accade in [:Subversion:SVN].
Linea 121: Linea 112:
= Fonti =
Per la realizzazione di questa guida sono state utilizzate le informazioni dei seguenti documenti
= Ulteriori risorse =

BR

Introduzione

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 sorgente vengono automaticamente registrati con un autoincremento di un dato valore numerico o alfanumerico che indica univocamente la revisione.

Caratteristiche

Il punto di forza di questa tecnologia è il poter tenere sotto controllo qualsiasi cambiamento effettuato dagli sviluppatori, avendo la possibilità di tornare a revisioni precedenti nel caso di errori o manomissioni volontarie al codice sorgente.BRIndubbia è anche la possibilità di collaborazione estesa che grazie a questo sistema diviene semplice: un gruppo di persone può infatti lavorare liberamente allo stesso codice sorgente modificando il tree remoto ed aggiornando la propria copia locale in relazione a modifiche di altri sviluppatori.

Installazione del 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. La corretta impostazione permette di operare sul repository scelto senza dover ripetere ogni volta la sua locazione e la procedura del login. Ovviamente questo si adatta a chi ha a che fare specialmente con un solo repository cvs.

Il modo più semplice per impostare questa variabile è:

CVSROOT=:pserver:nomeutente@dominio.it:/percorso/al/cvs
  • pserver è il metodo di connessione/autenticazione e sta per password authenticated server

  • nomeutente è il nome utente per un dato dominio. Nel caso di un semplice checkout, può anche essere anonimo: fornire anonymous come stringa.

  • dominio.it è il dominio, completo di eventuale sottodominio, cui collegarsi (molto spesso è del tipo cvs.dominio.it)

  • /percorso/al/cvs è il path assoluto alla directory contenente il tree cvs da modificare/prelevare.

Una volta impostata è necessario esportarla:

export CVSROOT

Così che possa essere usata dal programma. Per controllare che tutto sia andato a buon fine, eseguire:

echo $CVSROOT

Controllare che l'output sia quello 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 directory 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 directory di lavoro;

  • co è il comando da eseguire, ovvero il checkout;

  • directory è il nome della directory locale in cui sarà salvato il tree.

oppure avendo già impostato correttamente la variabile [#var Cvsroot]:

cvs co directory

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 directory di lavoro;

  • import è il comando utilizzato;

  • -m "primo import in CVS" specifica un piccolo commento da associare alla creazione;

  • nomeprogetto è il nome del tree. Non necessariamente deve corrispondere alla directory di lavoro (anche se in molti casi si preferisce così);

  • vendortag releasetag sono due parametri avanzati la cui configurazione va oltre gli scopi di questa guida.

Immagine(Icone/Piccole/note.png,,center)

Per maggiori informazioni consultare [http://cvsbook.red-bean.com/cvsbook.html#Advanced%20CVS questa] pagina. Altrimenti sostituirli con i parametri di default: jrandom start.

Il comando è complesso e di utilizzo frequente su tree remoti: è 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 è necessario eseguirlo dopo aver navigato mediante terminale all'interno della cartella contenente i files del progetto. Ad esempio volendo importare dei files presenti nella directory cvs del proprio Desktop il comando da eseguire 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 aggiungere:

-d :pserver:nomeutente@dominio.it:/percorso/al/cvs

Aggiungere file o directory

Per aggiungere un file o una cartella (automaticamente in modo ricorsivo, indi comprendente tutti i file e le sottodirectory al suo interno) al tree si utilizza il comando add con la sintassi:

cvs add file
cvs add cartella

Rimuovere file o directory

Per rimuovere un file o una directory (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, al suo posto, si preferisce usare [:Subversion:SVN].

  • Non è possibile copiare file o directory oppure muovere file o directory direttamente da cvs;

  • Non è ancora supportato il mero listing dei file 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;

  • 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 come accade in [:Subversion:SVN].

Ulteriori risorse