[bglug] CVS
Al
bglug@lists.linux.it
Wed, 22 Jan 2003 17:53:58 +0100
Cosi' scrisse <xiang@tiscalinet.it>:
> Sto valutando l'adozione di un sistema CVS da utilizzare da
> parte di una quindicina di sviluppatori che operano su diverse
> piattaforme hardware e diversi linguaggi di programmazione.
> Qualcuno che ha qualche esperienza in merito e mi puo' descrivere
> le soluzioni adottate?
Io lo uso stabilmente da un po', e mi trovo veramente bene.
CVS gira su un server linux e i vari client sono tutti Windows NT, alcuni
su LAN, altri da remoto. L'unica porta necessaria per accedere al server
e' la 22, basta impostare i client per utilizzare ssh (uso CygWin).
L'uso di diversi linguaggi di programmazione e' ininfluente; i problemi
sorgono se si ha necessita' di stivare files binari, come ad esempio do-
cumenti Office, in quanto CVS memorizza unicamente le differenze tra le
versioni dei file; una soluzione potrebbe essere XML.
Il login e' necessario solo al primo checkout del progetto; successiva-
mente le informazioni necessarie come la directory dei repository, l'in-
dirizzo del server e il metodo di accesso vengono memorizzate in una car-
tella. In pratica i passi per utilizzare CVS sono i seguenti:
1) Creazione del progetto importando i sorgenti:
$ cvs import -m "Descrizione o commento" <percorsoCVS> <VendTag> start
dove <percorsoCVS> indica il percorso relativo al repository nel quale
memorizzare il progetto; <VendTag> e' un etichetta di identificazione
del progetto e start e' il release tag iniziale.
<percorsoCVS> dovra' essere nel formato ":metodo:user@host:/path"; per
utilizzare ssh "metodo" va impostato a "ext" e va definita una varia-
bile d'ambiente "CVS_RSH=ssh" sul client. Ovviamente deve esistere un
accesso ssh per il client.
2) Recupero del progetto:
$ cvs co <percorsoCVS>
dove "co" e' l'abbreviazione di "checkout".
3) Aggiornamento dei sorgenti:
$ cvs up -d -P
eseguito dalla directory del progetto creata dal "checkout"; in questo
modo non e' piu' necessario specificare <percorsoCVS>.
Le opzioni "-d" e "-P" indicano di creare nuove directory (se necessa-
rio) e di NON creare nuove directory se queste non contengono sorgenti
(tipicamente il caso di directory rimosse dal repository).
4) Commit delle modifiche:
$ cvs ci
eseguito dalla directory del progetto creata dal "checkout". Apre un
editor per l'inserimento dei commenti alle modifiche; successivamente
invia le modifiche al server.
5) Aggiunta files:
$ cvs add <percorso/file>
necessita di un commit.
6) Eliminazione di files:
$ cvs del <percorso/file>
necessita di un commit.
Inoltre CVS consente la gestione dei conflitti, delle branch, il watch
e il notify sui file e tante altre cosucce sfiziose...
Al
--
If you wrap the Internet around every person on the planet and spin the
planet, software flows in the network. [...] The resistance of the net-
work is directly proportional to the field strength of the intellectual
property system. (Eben Moglen)