Differences between revisions 7 and 8
Revision 7 as of 2008-03-29 22:42:22
Size: 3892
Editor: LucaBianconi
Comment:
Revision 8 as of 2008-03-29 22:44:27
Size: 4191
Editor: LucaBianconi
Comment:
Deletions are marked like this. Additions are marked like this.
Line 80: Line 80:

==Immagine==
{{{#!dot
digraph {
   rankdir = LR
   node [shape=box]
   "rev 0:838e" -> "rev 1:34ef" -> "rev 2:4563"
   "rev 1:34ef" -> "rev 3:fe56"
   "rev 2:4563" -> "rev 4:ac98"
   "rev 3:fe56" -> "rev 4:ac98"
   "rev 4:ac98" -> "rev 5:0345"
   "rev 4:ac98" -> "rev 6:19e3 (tip)"
   label="example history"
}
}}}

Il modello di sviluppo decentralizzato di Mercurial può risultare difficile da comprendere per i nuovi utenti. Questa pagina prova a illustrare alcuni dei concetti di base.

(This page in English: UnderstandingMercurial)

Vedi il ["Tutorial"] per istruzioni passo-passo.

TableOfContents

Cosa c'è dentro un Repository

I Repository di Mercurial contengono una cartella di lavoro e uno store:

Lo store contiene la cronologia completa del progetto. Diversamente dai tradizionali SCM (Source Code Management - Gestori di code sorgente), dove c'è solo una copia centrale della cronologia, ogni cartella di lavoro è associata ad una sua copia della cronologia. Questo permette allo sviluppo di procedere in parallelo.

La cartella di lavoro contiene una copia dei file del progetto ad un determinato momento (i.e. revisione 2), pronti per la modifica. Dato che i tags e i file ignorati sono "revision-controlled", sono anch'essi inclusi.

Effettuare Modifiche

Quando concludi delle modifiche, lo stato corrente della cartella di lavoro, relativamente alle revisioni precedenti, viene registrato come una nuova revisione.

Nota nell'immagine, che la revisione 4 è una ramificazione della revisione 2, che era la revisione nella cartella di lavoro. Ora la revisione 4 è la revisione "padre" rispetto alla cartella di lavoro.

Revisioni, Changeset, Head e Tip

Mercurial raggruppa i cambiamenti relativi a più file in un singolo Changeset, ossia una lista di tutti i cambiamenti al progetto già presente nel repository. Dal momento che Mercurial consente lo sviluppo distribuito parallelo, questi numeri di revisione potrebbero essere diversi tra un utente e un altro. Per questo motivo anche Mercurial assegna a ciascuna revisione un numero d'identificazione univoco(changeset ID). Questi ultimi sono codificati con numeri esadecimali a 40 cifre, tuttavia possono essere abbreviati in un qualsiasi prefisso che non sia ambiguo, per esempio "e38487".

Ramificazioni e merge(ossia quando due revisioni diverse si riuniscono in un repository solo) possono trovarsi in qualsiasi punto della cronologia delle revisioni. Ogni ramificazione che non si riunisce ad un'altra in un merge crea una nuova head(ossia un changeset senza "figli")nella cronologia delle revisioni. Notare qui come le revisioni 5 e 6 siano head. Inoltre, sempre nell'esempio, Mercurial considera la revisione 6 come tip del repository, ossia la head col più alto numero di revisioni e dunque la più recente.


CategoryItalian

ItalianUnderstandingMercurial (last edited 2012-11-11 18:51:01 by abuehl)