Uno dei più comuni controllori di versione è Mercurial, o hg che insieme a Git sono l’evoluzione degli ormai sorpassati CVS e Subversion.

Vedremo qui di seguito i comandi fondamentali per utilizzare hg. Faccio presente che questa non è una guida completa ma solo un breviario delle funzionalità più comuni.

Creare un progetto e registrare le modifiche:

$ hg init (directory del progetto)
$ cd (directory del progetto)
$ touch MioProgetto.txt
$ hg add
$ hg commit -m 'Apertura del progetto e commit iniziale.'

Il comando hg init inizializza il controllo di versione di un progetto. Con touch abbiamo creato un file di testo di esempio. Il comando hg add serve ad aggiungere il file al controllo di versione e infine hg commit registra le modifiche effettuate. Il parametro – m di hg commit permette di aggiungere un commento direttamente in linea, se omesso verrà chiesto di aggiungere un commento in seguito. (Non sto a spiegarvi quanto utile possa essere commentare sempre i commit aggiungendo quante più informazioni ci è possibile.)

Controllare lo stato di un progetto:

$ hg status

Con hg status possiamo controllare in qualsiasi momento lo stato di un progetto: ci dirà se sono stati aggiunti o eliminati files e quali files che erano sotto tracciatura sono stati modificati.

Lo storico:

$ hg log

hg log mostrerà lo storico dei commit.

Rollback:

$ hg rollback
$ hg commit

Torniamo ad una precedente versione con il comando hg rollback e la rendiamo operativa con hg commit.

Se abbiamo un repository online (ossia uno spazio web dove conserviamo la copia dei file sorgente), possiamo ottenere una copia locale (ecco perché è un sistema distribuito) come segue:

$ hg clone https://website.tld/Progetti/hello-world/ hello-world

Il comando creerà la cartella hello-world sulla posizione in cui siamo, con una copia di tutti i file tracciati con Mercurial.

Inviare e ricevere aggiornamenti:

$ hg push https://website.tld/Progetti/hello-world/
$ hg pull https://website.tld/Progetti/hello-world/

I comandi hg push e hg pull si usano rispettivamente per inviare le nostre modifiche locali al repository online dopo un commit e per aggiornare il repository locale dopo che qualcun altro ha effettuato delle modifiche.

Sarà necessario inviare il comando hg update per rendere fruibili le modifiche.

Spero di aver toccato tutti i tasti… e rimando al manuale ufficiale per maggiori dettagli.