«

»

Nov 02

hg Mercurial: sistema di versionamento ad alte prestazioni

Mercurial Logo Fantastico! Provengo da CVS (Concurrent Versioning System) e ho trovato questo sistema di versionamento, per dirla coi matematici, un meraviglioso prolungamento analitico di CVS: l’interfaccia testuale è molto simile (gli usuali comandi di init, add, commit, log, eccetera).

sito: http://hgbook.red-bean.com/ , oppure qui per un bellissimo ground-up tutorial).

hg è un sistema di versionamento multi repository che permette di lavorare su più ambienti che possono fondersi con una operazione di merge in un repository centrale.

Cos’è un sistema di versionamento concorrente? E’ uno strumento software che permette di gestire senza errori la produzione di documenti (tipicamente codice di programmazione, ma non esclusivamente) scritti a molte mani, tipica situazione per gruppi che sviluppano uno stesso progetto software e nel quale ogni programmatore può intervenire sul lavoro di altri (ad esempio: correggere un bug, aggiungere una funzionalità, eccetera). Come fare in modo che le modifiche di ognuno non sovrascrivano quelle degli altri? Si usa un sistema di versionamento.

Cosi Marco può rilasciare una versione 0.1, Alessio può accorgersi ci un bug e correggerlo, rilasciando una versione 0.2, e quando Marco torna a lavorare sullo stesso file, ripartirà dalla versione senza bug, per produrre la sua versione 0.3 e così via; si può anche lavorare contemporaneamente sullo stesso file e il sistema di versionamento deve avvertire i concorrenti in casi di conflitti e deve segnare tutte le modifiche secondo uno storico che possa anche permettere di ripartire da un punto precedente che era noto funzionare. Questo sistema consente anche di effettuare i cosiddetti fork, ovvero delle derivazioni in cui il software iniziale prende una strada indipendente ad esempio perché la versione che si va a sviluppare è verticale per una determinata architettura hardware, pure essendo lo stesso software.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>