Sommario
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/
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*"
Commenti recenti