↑ Torna a PHP

HG

HG

Indice

Mercurial Hg

Creare un repository

Possiamo creare, a scelta, un solo repository e metterci dentro le cartelle, oppure creare un repository diverso in ogni cartella che vogliamo versionare. In questo secondo caso posizioniamoci un livello sopra la cartella che vogliamo versionare (se non c’è, hg la creerà)

  $ cd Documenti/code
  $ hg init sinapsi

Questo comando crea una directory .hg dentro la cartella code/sinapsi. dentro ad .hg ci sono dei file e delle cartelle che sono descritti più avanti in questo wiki. E’ tutto.

Verificare lo stato del repository

Lo stato del repository si definisce come la differenza tra i file attualmente presenti nella directory e quelli registrati nello storico. La differenza può riguardare

  • i file che ci sono nella directory ma non nel repository (file da aggiungere)
  • i file che ci sono sia nella directory e anche nello storico, ma in versioni diverse
  • i file che ci sono in storico ma non ci sono più nella directory

I file da aggiungere sono marcati con ? da Hg, mentre quelli modificati sono marcati con M. Quelli che sono stati cancellati vengono marcati con D.

Come aggiungere i file nuovi al repository

Normalmente si creano o si aggiungono nuovi file al progetto, nel qual caso bisogna aggiungerli al repository;

 marcob@jsbach:/var/www/mycal$ hg add
 aggiunta in corso di .hgignore
 aggiunta in corso di math.php
 aggiunta in corso di month.php
 aggiunta in corso di prova.php
 aggiunta in corso di week.php

In questo caso li ho aggiunti. Se riprovo a vedere lo stato del repository ora i file sono passati da ? a A:

 marcob@jsbach:/var/www/mycal$ hg status
 M calendar.php
 M index.php
 M mycal.php
 M stile1.css
 A .hgignore
 A math.php
 A month.php
 A prova.php
 A week.php

La storicizzazione avviene usando il comando commit

Problemi al commit

Mi è capitato di eseguire questo comando

 hg ci

e di vedermi ritornare un errore

no username supplied

alla fine la soluzione ‘ho trovata nell’help della interfaccia web!!!

  • fare partire il server
 hg serve
 in ascolto su http://jsbach:8000/ (limitato a *:8000)
  • leggo la sintassi corretta dalla pagina web
  • da console eseguo
 hg commit -u marcob

funziona!

Come ignorare determinati tipi di file

creare nella direcory di lavoro, accanto alla cartella .hg, un file .hgignore e elencare i pattern da ignorare. Io per esempio ho listato qui dentro i pattern relativi ai file di backup prodotti dai vari editor:

 syntax: glob

 *~
 *.bak

Si possono usare anche le espressioni regolari:

 syntax: regexp
 ^.pc/

[1]

Come estrarre i sorgenti in un tarball alla versione voluta

Posizionarsi nella cartella da estrarre e

  $ hg archive -t tgz /home/marcob/mycal.tgz

questo estrae la testa, cioè la versione più recente; per estrarre versioni più vecchie aggiungere il parametro -rev=x.y con x.y= versione che si vuole estrarre. Per non estrarre anche i file di configurazione hg (.hg, .hgignore) aggiungere l’opzione -X ".hg*"

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>