7189
Commento: files ---> file
|
← Versione 21 del 13/10/2021 16.44.05 ⇥
6999
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## page was renamed from Cvs | |
Linea 3: | Linea 4: |
[[BR]] ||<tablebgcolor="#f1f1ed" tablewidth="35%" tablestyle="margin: 0pt 0pt 1em 1em; float: right; font-size: 0.9em;"style="padding: 0.5em;">'''Indice'''[[TableOfContents(1)]]|| |
<<BR>> <<Indice(depth=1)>> |
Linea 12: | Linea 13: |
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. | 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. |
Linea 16: | Linea 17: |
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 [[Repository|repository]] ed è installabile con il seguente comando:{{{ |
Linea 20: | Linea 21: |
[[Anchor(var)]] | <<Anchor(var)>> |
Linea 55: | Linea 56: |
oppure avendo già impostato correttamente la variabile [#var Cvsroot]:{{{ | oppure avendo già impostato correttamente la variabile [[#var|Cvsroot]]:{{{ |
Linea 72: | Linea 73: |
||<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 sull'amministrazione avanzata di CVS consultare [http://cvsbook.red-bean.com/cvsbook.html#Advanced%20CVS questa] pagina.'''|| | {{{#!wiki important Per maggiori informazioni sull'amministrazione avanzata di CVS consultare [[http://cvsbook.red-bean.com/cvsbook.html#Advanced%20CVS|questa]] pagina.}}} |
Linea 74: | Linea 76: |
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:{{{ | 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 86: |
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: {{{ | 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: {{{ |
Linea 105: | Linea 107: |
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]. | Purtroppo il metodo cvs ha alcune limitazioni in operazioni di utilizzo comune ed è per questo che spesso, al suo posto, si preferisce usare [[Programmazione/Subversion|SVN]]. |
Linea 110: | Linea 112: |
* 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]. | * 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 [[Programmazione/Subversion|SVN]]. |
Linea 119: | Linea 121: |
CategoryProgrammazione | CategoryProgrammazione CategoryDaRevisionare |
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.
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 repository ed è installabile con il seguente comando:
sudo apt-get install cvs
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 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. I parametri predefiniti sono: jrandom start.
Per maggiori informazioni sull'amministrazione avanzata di CVS consultare questa pagina.
Il comando è complesso e di utilizzo frequente su tree remoti: è pertanto conveniente usare la variabile 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 file del progetto. Ad esempio volendo importare dei file 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 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 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 SVN.