[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)