A.3 CVS Anonimo

A.3.1 Introduzione

Il CVS Anonimo (anche conosciuto come anoncvs) è una caratteristica del programma di utilità CVS contenuto in FreeBSD che serve per sincronizzarsi con un deposito CVS remoto (in gergo repository CVS). Tra le altre cose, permette agli utenti di FreeBSD di realizzare, senza avere particolari permessi, operazioni CVS in sola lettura su uno dei server anoncvs ufficiali del progetto FreeBSD. Per utilizzarlo è sufficiente impostare la variabile di ambiente CVSROOT facendola puntare al server anoncvs appropriato, immettere la password “anoncvs” con il comando cvs login, e poi usare il comando cvs(1) per accederci come se fosse un deposito locale.

Nota: Il comando cvs login memorizza le password utilizzate per l'autenticazione con il server CVS in un file chiamato .cvspass nella tua directory HOME. Se questo file non esiste, potresti ricevere un errore alla prima esecuzione di cvs login. Crea un file .cvspass vuoto e riprova il login.

Benché si possa dire che i servizi CVSup e anoncvs realizzino sostanzialmente le stesse funzioni, ci sono vari particolari che possono influenzare la scelta di un metodo di sincronizzazione piuttosto dell'altro. Per dirla in breve, CVSup è più efficiente nell'uso delle risorse di rete ed è il più avanzato tecnicamente tra i due, ma tutto questo ha un prezzo. Per usare CVSup, bisogna installare e configurare un client speciale prima di poter scaricare qualcosa, e si può scaricare solo blocchi piuttosto grossi che CVSup chiama collezioni.

Anoncvs, al contrario, può essere usato per esaminare qualunque cosa a partire da un singolo file fino a uno specifico programma (come ls o grep) specificando il nome del modulo CVS. Ovviamente, anoncvs è adatto solo per operazioni di sola lettura sul deposito CVS, quindi se hai intenzione di supportare lo sviluppo locale in uno dei depositi condivisi del progetto FreeBSD allora CVSup è in realtà l'unica opzione.

A.3.2 Uso del CVS Anonimo

La configurazione di cvs(1) per usare un deposito CVS Anonimo è semplicemente una questione di impostare la variabile di ambiente CVSROOT affinché punti a uno dei server anoncvs del progetto FreeBSD. Al momento della stesura di questo testo sono disponibili i seguenti server:

Dato che CVS permette di estrarre (nel suo gergo: “check out”) qualsiasi versione dei sorgenti di FreeBSD che sia mai esistita (o, in alcuni casi, che esisterà), è bene familiarizzare con il parametro revisione (-r) di cvs(1) e sapere quali valori può assumere nel deposito del progetto FreeBSD.

Ci sono due tipi di tag, i tag di revisione e i tag di ramo. Un tag di revisione fa riferimento ad una revisione specifica. Il suo significato rimane lo stesso di giorno in giorno. Un tag di ramo, d'altro canto, si riferisce sempre all'ultima revisione relativa a una specifica linea di sviluppo. Dato che un tag di ramo non si riferisce ad una revisione specifica, esso potrebbe avere un significato diverso da un giorno con l'altro.

La Sezione A.7 contiene i tag di revisione che possono essere interessanti per gli utenti. Tuttavia, nessuno di questi tag è valido per la collezione dei port poichè questa non ha revisioni multiple.

Quando specifichi un tag di ramo, normalmente ricevi l'ultima versione dei file relativa a quella linea di sviluppo. Se vuoi ricevere una versione precedente, puoi farlo specificando la data con il parametro -D date. Si rimanda alla pagina man di cvs(1) per ulteriori dettagli.

A.3.3 Esempi

Benché sia consigliata un'attenta lettura della pagina man di cvs(1) prima di fare qualsiasi cosa, seguono alcuni veloci esempi che spiegano in modo essenziale l'uso del CVS Anonimo:

Esempio A-1. Estrazione di Qualcosa dalla -CURRENT (ls(1)):

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
Alla richiesta, inserire la password “anoncvs”.
% cvs co ls

Esempio A-2. Utilizzo di SSH per estrarre il ramo src/:

% cvs -d [email protected]:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.

Esempio A-3. Estrazione della Versione di ls(1) dal Ramo 6-STABLE:

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
Alla richiesta, inserire la password “anoncvs”.
% cvs co -rRELENG_6 ls

Esempio A-4. Creazione di una Lista di Cambiamenti (come Diff Unificate) di ls(1)

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
Alla richiesta, inserire la password “anoncvs”.
% cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls

Esempio A-5. Scoperta di Quali Altri Nomi di Moduli Possono Essere Usati

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
Alla richiesta, inserire la password “anoncvs”.
% cvs co modules
% more modules/modules

A.3.4 Altre Risorse

Le seguenti risorse addizionali possono essere utili nell'apprendimento del CVS:

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <[email protected]>.
Per domande su questa documentazione, invia una e-mail a <[email protected]>.