CVS ed SVN, impariamo cosa sono e come creare un repository

Chi è uno sviluppatore sicuramente lo conosce e lo utilizza, chi è un semplice utente sente ogni giorno parlare di repository SVN o CVS, ma chi sa quanti di loro sanno cosa esattamente è un repository svn e come si costruisce.

Oggi all’ufficio ne ho dovuto fare uno al volo per degli sviluppatori ed essendo una procedura estremamente semplice e veloce ho deciso di creare un set di guide che spieghino prima di tutto cosa è SVN e poi come si fa un repository SVN.

Come avrete potuto notare, i sorgenti dei software in fase di sviluppo vengono rilasciati su dei contenitori che vengono chiamati repository, questi repository vengono "taggati" con delle sigle quali SVN o CVS, entrambi sono sistemi di controllo delle versioni, e significano rispettivamente SubVersioN e Concurrent Versions System.[fn]Alcune volte chiamato anche Concurrent Versioning System.[/fn]

La storia:

Con l’espandersi di Internet si sono espansi anche i lavori che l’informatica stessa ha creato, tra cui l’importante lavoro dello sviluppatore, le aziende ed anche i semplici utenti iniziano a rivolgersi a questo campo, l’una con l’obiettivo di fare nuovo mercato, l’altro con la voglia di imparare e rendersi utile; però lo sviluppo di un solo software, soprattutto se complesso, non poteva essere affidato ad un solo sviluppatore, pena tempi di rilascio biblici.

Si è iniziato quindi a collaborare in più sviluppatori sullo stesso progetto, spesso questi sviluppatori erano di località diverse, come lo è tutt’ora, e quindi mantenere il codice aggiornato era praticamente impossibile; è stato introdotto quindi un sistema client-server, che mantenesse le versioni più aggiornate dei sorgenti, e che fosse accessibile da tutti, che prese il nome di CVS. Successivamente il software si evolse fino a cambiare radicalmente anche nel nome, nacque quindi il suo successore SVN.

Di seguito un affermazione, presa da wikipedia, del creatore di CVS Dick Grune:

« Ho creato CVS per poter lavorare cooperare con i miei studenti
Erik Baalbergen e Maarten Waage sul compilatore C dell ACK (Amsterdam Compiler Kit).
Tre di noi hanno avuto programmi ampiamente differenti
(uno studente era un lavoratore costante dalle 9 alle 17,
l’altro era irregolare, e io
potevo lavorare sul progetto solo di sera).
Il loro progetto funzionò dal luglio del 1984 all’agosto del 1985.
CVS fu inizialmente chiamato cmt, per le ovvie ragioni
che ci permisero di rilasciare versioni indipendentemente. » (
Dick Grune)

Il Funzionamento:

Il funzionamento dei due tipi di repository è simile, come abbiamo detto è basato su tecnologia client-server, il server generalmente gira su macchine unix o unix-like (sebbene ci siano anche server per windows ma usati quasi mai), mentre i client girano praticamente su tutte le piattaforme esistenti.

Più sviluppatori possono uploadare i propri sorgenti insieme, se per caso due sviluppatori aggiornano lo stesso file, cvs/svn cerca di inglobare le modifiche in un file solo cosi fa un solo aggiornamento, se nemmeno questo è possibile, il repository accetta la prima modifica restituendo un messaggio d’errore al secondo.

I client possono fare anche altre operazioni, come ad esempio richiedere lo storico di tutte le modifiche dei sorgenti, confrontare due versioni diverse dei file oppure verificare un certo numero di revisione.

Lo spazio su disco viene ottimizzato attraverso una compressione delta delle varie revisioni dei files.

La differenza tra CVS ed SVN sostanzialmente sta nel fatto che, mentre cvs ad ogni commit (avanzamento di revisione) aggiorna l’intero file, SVN effettua un merge tra la vecchia revisione e la nuova ed aggiorna solo le stringhe di codice necessarie.

Curiosità:

Quando Dick Grune inventò cvs pubblicò il codice sorgente su un newsgroup, mod.sources, il 23 Giugno del 1986.

Ancora è visibile il primo post originale, inserito su usenet, su google groups.

Il codice odierno di CVS, è stato scritto da Brian Berliner, qui è visibile la pagina che nell’aprile del 1989, aveva pubblicato per rendere noto cosa ha modificato dal codice di Grune, e come il codice era sotto lavorazione anche di Prisma, un hacker free-lance allora sviluppatore del kernel di SunOS.

Alcuni sviluppatori di allora sono ora responsabili del progetto SVN, rilasciato nel 2004.

Con il prossimo articolo vedremo cosa ci serve per installare un server svn sulla nostra linux-box, e i comandi basilari per gestirlo.


Altri articoli che potrebbero interessarti

Lista server Jabber: Il Portalinux c’è!! Come sapete da un paio di mesi abbiamo iniziato a offrire anche noi un servizio di messaggistica , chi...
Il Portalinux sbarca su Arch Finalmente dopo un bel pò di tempo siamo riusciti a far coincidere tempi e impegni. Sto parlando...
La chiave del repository è cambiata, aggiornare prego… "bella questa e mò che gli prende..." Praticamente non so perchè, non so per...
Aggiornamenti del repository Siamo un pò in ritardo lo so, ma da un pò di tempo sono l'unico a prendersi cura del repository...
Ciao ciao ubuntu sei stata cmq una bella esperienza Era già da diverso tempo che ci stavo pensando ma dopo l'ultimo scherzetto mi sono finalmente...

About the Author

M0rF3uS al secolo Alex è un ggiovine 25enne appassionato di informatica e linux. Lavora come Network and System Administrator e nel tempo libero gioca un pò con la sua fotocamera (Canon EOS 1000D) riuscendo a volte, per sbaglio, a fare qualche scatto decente. Completano il corredo, degli hobbies "vorrei ma non posso" ossia l'astronomia e l'astronautica....si è uno di quelli che da grande vorrebbe fare l'astronauta (povero coglione vero?).