Usare il CVS

CVS è un programma che aiuta molte persone a lavorare sullo stesso materiale simultaneamente. Ogni utente si crea una copia locale dell'originale. La copia locale può essere sulla stessa macchina o sparsa per il mondo. Gli utenti possono quindi modificare la copia locale fino ad avere un materiale completo per essere usato. Allora possono portare tutte le loro modifiche sull'originale (commit).

Per un accesso in sola lettura è possibile utilizzare l'interfaccia web. Ci sono anche molti client CVS con interfaccia grafica quali cervisia (KDE). Questo programma mostra i passi da eseguire con il programma a linea di comando cvs; gli altri client hanno funzionalità analoghe.

CVS non permette di definire una modifica sull'originale se nel frattempo altri l'hanno già cambiato. Questo di norma non è un grosso problema poiché si può sempre aggiornare la copia locale. Se invece le modifiche erano avvenute su varie parti non toccate da te allora queste avverranno senza problemi. Se le modifiche hanno a che fare con la stessa parte sulla quale stai lavorando, allora sarai avvisato del conflitto e dovrai modificare i file prima di poter fare il commit.

Nella parte che segue, verrà usato come esempio l'accesso anonimo. Se disponi di un altro account che permette l'accesso in scrittura, allora dovresti usare quell'account. Se pensi di apportare delle modifiche, allora dovresti procurarti un account con i diritti di scrittura prima di continuare, poiché l'account anonimo non permette la modifica. Vedi la sezione sull'accesso in scrittura per maggiori informazioni.

Per cominciare ad usare CVS devi prima effettuare il login sul server CVS

   cvs -d :pserver:anonymous@anonscm.debian.org:/cvs/webwml login

(puoi semplicemente premere return quando ti sarà chiesta la password)

Per ottenere una copia dei file wml sulla tua macchina locale, devi fare così:

   cvs -d :pserver:anonymous@anonscm.debian.org:/cvs/webwml checkout webwml

Puoi ottenere un sottoinsieme delle pagine facendo così:

   cvs -d :pserver:anonymous@anonscm.debian.org:/cvs/webwml checkout -l \
          webwml webwml/<language>
   cvs -d :pserver:anonymous@anonscm.debian.org:/cvs/webwml checkout \
          webwml/Perl webwml/english/template webwml/<language>/Pics
   cvs -d :pserver:anonymous@anonscm.debian.org:/cvs/webwml checkout \
	  webwml/<language>/<path to desired files>

Fai ciò per tutte le sottodirectory o file che ti servono. La seconda riga include tutti i file che ti serviranno se desidererai creare le pagine HTML dai file WML. I checkout parziali come questi non sono ancora del tutto supportati, pertanto le istruzioni sopra riportate potrebbero non funzionare sempre.

Se si dispone già di un account su Alioth, con una relativa chiave pubblica SSH, puoi usare quello al posto di anonymous, in questo modo:

   cvs -d :ext:username@cvs.debian.org:/cvs/webwml checkout webwml/english/doc

Da questo momento in poi non avrai bisogno di inserire la parte '-d :ext:...'. Ogni due-tre giorni esegui il comando

   cvs update -d

per avere la nuova versione dei file cambiati sull'originale. Il parametro -d permette di aggiungere le nuove directory automaticamente. Tale comando scaricherà inoltre tutte le directory mancanti laddove fosse stato effettuato un checkout parziale: in tal caso si dovrebbe usare lo script cvsup.py. Potresti voler creare un file ~/.cvsrc in modo da non dover inserire le opzioni ogni volta. Per esempio potrebbe contenere:

cvs -z9
update -d -P
diff -u

La parte seguente è per chi ha accesso in scrittura sull'originale. Quando hai finito con una pagina, puoi copiare le tue modifiche sull'originale tramite

   cvs commit <file>.wml

o

   cvs commit <dir>   (per tutte le modifiche in <dir>)

o

   cvs commit          (per tutte le modifiche dalla directory corrente in poi)

Se sei il primo che traduce una pagina devi anche eseguire

   cvs add <file>.wml

prima di farne il commit. Nota che cvs add non è ricorsivo e quindi devi farlo per ogni singola directory che devi aggiungere e per il suo contenuto.

Per maggiori informazioni su CVS, dai il comando info cvs.

Includendo Closes: #nnnnnn nel messaggio di commit, il bug numero #nnnnnn verrà chiuso automaticamente una volta effettuato il commit. La forma esatta di questo comando è specificata nella policy Debian.

Si prega di non utilizzare link HTTPS verso i siti Debian, DebConf o SPI. Al momento, infatti, i certificati SSL per questi siti sono firmati da SPI Certificate Authority, che è considerata fonte fidata da macchine Debian ma non, in genere, dai browser su altri sistemi operativi. Ciò significa che usando tali link per i siti Debian, molti visitatori potrebbero ottenere errori SSL dai loro browser e quindi lamentarsene con Debian. Il repository CVS, perciò, rifiuterà i commit contenenti link HTTPS per le parti dei siti Debian che non richiedono SSL.

Accesso in scrittura al CVS

Se sai già come collaborare, e hai inviato abbastanza patch che sono state accettate dal team web o dal team di traduzione, puoi ottenere l'accesso in scrittura al CVS: richiedi di far parte del progetto Alioth webwml (dovrai creare un account su Alioth se non ne hai ancora uno). Si prega inoltre di scrivere qualcosa di indicativo del lavoro che si intende fare nella propria richiesta, come quale lingua o con quali parti del sito si ha intenzione di lavorare e chi è in grado di garantire per voi.