12.1.2 Esempi di una sessione CVS
Quanto segue imposta l'ambiente di shell per l'accesso al deposito CVS.
12.1.2.1 CVS anonimo (solo download)
Accesso remoto in sola lettura
$ export CVSROOT=:pserver:[email protected]:/cvsroot/qref
$ cvs login
$ cvs -z3 co qref
12.1.2.2 Uso del server CVS locale
Accesso locale da una shell sulla stessa macchina:
$ export CVSROOT=/var/lib/cvs
12.1.2.3 Uso di un pserver CVS remoto
Accesso remoto senza SSH (usate le capacit� del protocollo RSH in
cvs
)
$ export CVSROOT=:pserver:[email protected]:/var/lib/cvs
$ cvs login
E' vulnerabile ad attacchi tipo eavesdropping.
12.1.2.4 CVS remoto tramite ssh
Accesso remoto con SSH:
$ export CVSROOT=:ext:[email protected]:/var/lib/cvs
oppure, per SourceForge:
$ export CVSROOT=:ext:[email protected]:/cvsroot/qref
Potete anche utilizzare l'autenticazione RSA (Connettersi con meno passwords – RSA,
Sezione 9.5.3), che elimina la necessit� della richiesta di password.
12.1.2.5 Creare un nuovo archivio CVS
Per,
OGGETTO VALORE SIGNIFICATO
albero sorgente ~/progetto-x Tutti i codici sorgente
Nome progetto progetto-x Nome per questo progetto
Vendor Tag: Main-branch Tag per la branca intera
Release Tag: Versione-iniziale Tag per una versione specifica
Quindi,
$ cd ~/progetto-x # entra nella directory sorgente
... crea un albero sorgente ...
$ cvs import -m "Start progetto-x" progetto-x Main-branch Versione-iniziale
$ cd ..; rm -R ~/progetto-x
12.1.2.6 Lavorare con CVS
Per richiamare e lavorare con le versioni locali del progetto-x con
l'archivio CVS:
$ cd # muove all'area di lavoro.
$ cvs co progetto-x # copia i sorgenti CVS all'archivio locale
$ cd progetto-x
... esegui cambiamenti al contenuto ...
$ cvs diff -u # simile a diff -u repository/ local/
$ cvs up -C file_modificato # elimina le modifiche ad un file
$ cvs ci -m Descrivi i cambiamenti # salva i sorgenti locali nel CVS
$ vi nuovofile_aggiunto
$ cvs add nuovofile_aggiunto
$ cvs ci -m Aggiunto nuovofile_aggiunto
$ cvs up # fonde l'ultima versione da CVS
... per creare tutte le sottodirectory appena create da CVS, usate
.... "cvs up -d -P", invece
... cercate le righe che iniziano per "C nomefile"
... il codice immodificato viene spostato a `.#nomefile.version'.
... Cerca "<<<<<<<" e ">>>>>>>" in nomefile.
$ cvs tag Release-1 # aggiunge la tag di versione
... esegui ulteriori modifiche ...
$ cvs tag -d Release-1 # rimuove la tag di versione
$ cvs ci -m altri commenti
$ cvs tag Release-1 # ri-aggiunge la tag di versione
$ cd # ritorna all'area di lavoro.
$ cvs co -r Release-initial -d old progetto-x
... riporta la versione originale alla directory old
$ cd old
$ cvs tag -b Release-initial-bugfixes # crea la tag di branca (-b)
... Ora si pu� lavorare sulla vecchia versione (Tag=sticky)
$ cvs update -d -P # non crea directory vuote
... L'albero sorgente ha ora una tag fissa "Release-initial-bugfixes"
... Lavorate su questa branca
$ cvs up -d -P # si sincronizza con i file modificati da altri su questa branca
$ cvs ci -m "controllate questa branca"
$ cvs update -kk -A -d -P
... Rimuovete la tag fissa e dimenticate il contenuto
... Aggiornate la linea principale senza espansione per parola chiave
$ cvs update -kk -d -P -j Release-initial-bugfixes
... Fonde la branca Release-initial-bugfixes nella linea
... principale senza espansione per parola chiave. Risolvete i conflitti con l'editor.
$ cvs ci -m fusa Release-initial-bugfixes
$ cd
$ tar -cvzf old-progetto-x.tar.gz old # produce un archivio, -j per bz2
$ cvs release -d old # rimuove i sorgenti locali (opzionale)
Alcune opzioni utili da ricordare (da usare come primi argomenti per
cvs
):
-n esecuzione secca, nessun effetto
-t mostra messaggi sui passi dell'attivit� di cvs
12.1.2.7 Esportare i file da CVS
Per ottenere l'ultimissima versione da CVS, usate "tomorrow":
$ cvs ex -D tomorrow nome_modulo
12.1.2.8 Amministrare CVS
Aggiungere un alias ad un progetto(server locale):
$ su - admin # un membro del team
$ export CVSROOT=/var/lib/cvs
$ cvs co CVSROOT/modules
$ cd CVSROOT
$ echo "px -a progetto-x" >>modules
$ cvs ci -m Ora px � un alias per progetto-x
$ cvs release -d .
$ exit # o Ctrl-D per uscire da su
$ cvs co -d progetto px
... check out progetto-x (alias:px) da CVS alla directory del progetto
$ cd project
... modifica il contenuto ...