Differences between revisions 1 and 13 (spanning 12 versions)
Revision 1 as of 2008-03-30 18:37:17
Size: 1502
Editor: LucaBianconi
Comment:
Revision 13 as of 2009-05-09 00:14:24
Size: 6823
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#language it
Line 3: Line 4:
A questo punto, dopo aver appreso dalla sezione TutorialCopia per copiare un repository; la nostra copia in locale si chiama {{{my-hello}}}. ''(Questa pagina è la parte 3 di 9 delle serie ItalianTutorial. La parte precedente è [:TutorialCopia], la prossima parte è [:TutorialPrimaModifica])''
Line 5: Line 6:
Diamo un'occhiata alla cronologia di questo repository. Per farlo usiamo il comando {{{log}}}. Questo stampa un sommario di ciascuna modifica effettuata nel repository, mostrati in ordine dal più recente al più vecchio. A questo punto, abbiamo appreso dal TutorialCopia come clonare un repository; la nostra copia locale si chiama {{{my-hello}}}.

Diamo un'occhiata alla cronologia di questo [:Repository:repository]. Per farlo usiamo il comando {{{log}}}. Questo stampa un sommario di ciascuna modifica effettuata nel repository ordinata dalla più recente alla più vecchia.
Line 8: Line 11:
$ cd my-hello
Line 24: Line 26:
 * Ciascun paragrafo descrive un particolare [:ChangeSet:changeset]. Un changeset corrisponde alla modifica di uno o più file, raggruppati in una sola unità logica.
   * Nel caso mostrato in precedenza, possiamo notare come la cronologia del repository consista di due changesets.
 * {{{changeset}}} identifica un changeset.
   * Il primo numero davanti ai due punti è il [:RevisionNumber:numero di revisione]; si tratta di un modo pratico per identificare il changeset, valido però soltanto all'interno del repository.
   * La stringa esadecimale dopo i due punti è una forma abbreviata del [:ChangeSetID:changeset ID]; identifica il changeset ed è lo stesso in tutti i repository che contengono questo changeset. Se si parla con qualcun altro, sarebbe meglio usare il changeset ID e non il numero di revisione.
 * {{{tag}}} è un [:Tag:tag], un nome simbolico arbitrario per un changeset.
   * E' possibile assegnare uno o più tag a un changeset. Al momento non molti changeset hanno tag associati, così la linea per il tag è raramente presente.
   * Il tag speciale chiamato {{{tip}}} identifica ovviamente il [:Tip:tip], che è il changeset più recente nel repository. Se si crea un altro changeset (e qui lo faremo presto), il tag tip sarà spostato nel nuovo changeset, che sarà divenuto ovviamente il più recente.
 * {{{user}}} identifica la persona che ha creato il changeset. Questa è una stringa libera da forma; generalmente contiene un indirizzo e-mail e talvolta il nome proprio.
 * {{{date}}} indica quando è stato creato il changeset. Queste date sono segnate secondo il fuso orario del creatore del changeset.
 * {{{summary}}} da una prima descrizione sommaria del changeset. Questo "sommario" viene inserito dal creatore del changeset al momento della creazione, per aiutare se stessi e gli altri a capire il senso del changeset (cfr. anche ["ChangeSetComments"]).
 * {{{parent}}} identifica il changeset [:Parent:genitore], nel caso ce ne sia più di uno, cosa che accade quando si effettua la [:Merge:fusione] di più repository.
   * Il più delle volte c'è un solo genitore, che è il solo changeset più vecchio di se stesso. Questo infatti è il caso dell'esempio sopra.
Line 25: Line 40:




Possiamo ottenere una cronologia più dettagliata chiedendo un verbose output con l'opzione {{{-v}}}, o l'opzione globale {{{--debug}}}:
Line 33: Line 44:
changeset: 1:82e55d328c8ca4ee16520036c0aaace03a5beb65 changeset: 1:82e55d328c8c
Line 44: Line 55:
manifest: 1:0c7c1d435e6703e03ac6634a7c32da3a082d1600
Line 49: Line 59:
manifest: 1:0c7c1d435e6703e03ac6634a7c32da3a082d1600
Line 52: Line 63:
extra: branch=default
Line 57: Line 69:

Il "verbose output" contiene alcuni campi in più rispetto all'output di default.

 * {{{files}}} fa una lista dei file modificati in questo changeset.
 * {{{description}}} contiene la descrizione multilinea completa del changeset, anzichè soltanto la prima linea.
   * Nel nostro caso, le descrizioni sono lunghe solo una linea, così non si nota molto la differenza.

L'output `--debug` aggiunge i seguenti campi al verbose output (cfr. [:DebuggingFeatures]):

 * {{{changeset}}} ora mostra la forma non abbreviata del changeset ID.
 * due campi {{{parent}}} che mostrano entrambi i changeset dei "genitori" di un changeset, dove {{{-1:000000000000000000000000000000000000000}}} si riferisce a un genitore inesistente.
 * {{{manifest}}} mostra il [:Manifest:manifest] ID per questo changeset.
 * {{{file+}}} presenta la lista dei file aggiunti in questo changeset.
 * {{{file-}}} mostra una lista di tutti i file rimossi.

Il comando {{{log}}} si arricchisce dell'opzione {{{-r}}} nel caso si voglia analizzare uno changeset specifico.

{{{
$ hg log -r1
changeset: 1:82e55d328c8c
tag: tip
user: mpm@selenic.com
date: Fri Aug 26 01:21:28 2005 -0700
summary: Create a makefile
}}}

<!> L'opzione {{{-r}}} al momento supporta una sintassi molto flessibile per selezionare una certa quantità di changeset. Ad ogni modo, a causa del numero limitato di changeset disponibili nel nostro repository d'esempio, non è possibile dare una buona dimostrazione. Consultare le pagine relative sul [http://www.selenic.com/mercurial/hg.1.html#log manuale] per maggiori informazioni.

Il comando {{{log}}} possiede anche un'opzione -p per mostrare le patch associate ai changeset:

{{{
$ hg log -r1 -p
changeset: 1:82e55d328c8c
tag: tip
user: mpm@selenic.com
date: Fri Aug 26 01:21:28 2005 -0700
summary: Create a makefile

diff -r 0a04b987be5a -r 82e55d328c8c Makefile
--- /dev/null Fri Aug 26 01:20:50 2005 -0700
+++ b/Makefile Fri Aug 26 01:21:28 2005 -0700
@@ -0,0 +1,1 @@
+all: hello
}}}

Possiamo anche usare il comando {{{tip}}} per mostrare le informazioni riguardanti il ''tip'', ossia il changeset più recente. Il comando {{{tip}}} si può considerare una scorciatoia per il comando {{{log -r tip}}}.

{{{
$ hg tip
changeset: 1:82e55d328c8c
tag: tip
user: mpm@selenic.com
date: Fri Aug 26 01:21:28 2005 -0700
summary: Create a makefile

$ hg log -r tip
changeset: 1:82e55d328c8c
tag: tip
user: mpm@selenic.com
date: Fri Aug 26 01:21:28 2005 -0700
summary: Create a makefile
}}}

Ora che abbiamo un'idea della Cronologia dei changesets, passiamo a vedere come gestire le modifiche. Andiamo a [:TutorialPrimaModifica]!

----
CategoryItalian

Tutorial - esaminare la cronologia di un repository

(Questa pagina è la parte 3 di 9 delle serie ItalianTutorial. La parte precedente è [:TutorialCopia], la prossima parte è [:TutorialPrimaModifica])

A questo punto, abbiamo appreso dal TutorialCopia come clonare un repository; la nostra copia locale si chiama my-hello.

Diamo un'occhiata alla cronologia di questo [:Repository:repository]. Per farlo usiamo il comando log. Questo stampa un sommario di ciascuna modifica effettuata nel repository ordinata dalla più recente alla più vecchia.

$ hg log
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

changeset:   0:0a04b987be5a
user:        mpm@selenic.com
date:        Fri Aug 26 01:20:50 2005 -0700
summary:     Create a standard "hello, world" program

Queste linee di output necessitano di alcune spiegazioni.

  • Ciascun paragrafo descrive un particolare [:ChangeSet:changeset]. Un changeset corrisponde alla modifica di uno o più file, raggruppati in una sola unità logica.

    • Nel caso mostrato in precedenza, possiamo notare come la cronologia del repository consista di due changesets.
  • changeset identifica un changeset.

    • Il primo numero davanti ai due punti è il [:RevisionNumber:numero di revisione]; si tratta di un modo pratico per identificare il changeset, valido però soltanto all'interno del repository.

    • La stringa esadecimale dopo i due punti è una forma abbreviata del [:ChangeSetID:changeset ID]; identifica il changeset ed è lo stesso in tutti i repository che contengono questo changeset. Se si parla con qualcun altro, sarebbe meglio usare il changeset ID e non il numero di revisione.

  • tag è un [:Tag:tag], un nome simbolico arbitrario per un changeset.

    • E' possibile assegnare uno o più tag a un changeset. Al momento non molti changeset hanno tag associati, così la linea per il tag è raramente presente.
    • Il tag speciale chiamato tip identifica ovviamente il [:Tip:tip], che è il changeset più recente nel repository. Se si crea un altro changeset (e qui lo faremo presto), il tag tip sarà spostato nel nuovo changeset, che sarà divenuto ovviamente il più recente.

  • user identifica la persona che ha creato il changeset. Questa è una stringa libera da forma; generalmente contiene un indirizzo e-mail e talvolta il nome proprio.

  • date indica quando è stato creato il changeset. Queste date sono segnate secondo il fuso orario del creatore del changeset.

  • summary da una prima descrizione sommaria del changeset. Questo "sommario" viene inserito dal creatore del changeset al momento della creazione, per aiutare se stessi e gli altri a capire il senso del changeset (cfr. anche ["ChangeSetComments"]).

  • parent identifica il changeset [:Parent:genitore], nel caso ce ne sia più di uno, cosa che accade quando si effettua la [:Merge:fusione] di più repository.

    • Il più delle volte c'è un solo genitore, che è il solo changeset più vecchio di se stesso. Questo infatti è il caso dell'esempio sopra.

Possiamo ottenere una cronologia più dettagliata chiedendo un verbose output con l'opzione -v, o l'opzione globale --debug:

$ hg log -v
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
files:       Makefile
description:
Create a makefile

(...)

$ hg log --debug
changeset:   1:82e55d328c8ca4ee16520036c0aaace03a5beb65
tag:         tip
parent:      0:0a04b987be5ae354b710cefeba0e2d9de7ad41a9
parent:      -1:0000000000000000000000000000000000000000
manifest:    1:0c7c1d435e6703e03ac6634a7c32da3a082d1600
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
files+:      Makefile
extra:       branch=default
description:
Create a makefile

(...)

Il "verbose output" contiene alcuni campi in più rispetto all'output di default.

  • files fa una lista dei file modificati in questo changeset.

  • description contiene la descrizione multilinea completa del changeset, anzichè soltanto la prima linea.

    • Nel nostro caso, le descrizioni sono lunghe solo una linea, così non si nota molto la differenza.

L'output --debug aggiunge i seguenti campi al verbose output (cfr. [:DebuggingFeatures]):

  • changeset ora mostra la forma non abbreviata del changeset ID.

  • due campi parent che mostrano entrambi i changeset dei "genitori" di un changeset, dove -1:000000000000000000000000000000000000000 si riferisce a un genitore inesistente.

  • manifest mostra il [:Manifest:manifest] ID per questo changeset.

  • file+ presenta la lista dei file aggiunti in questo changeset.

  • file- mostra una lista di tutti i file rimossi.

Il comando log si arricchisce dell'opzione -r nel caso si voglia analizzare uno changeset specifico.

$ hg log -r1
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

<!> L'opzione -r al momento supporta una sintassi molto flessibile per selezionare una certa quantità di changeset. Ad ogni modo, a causa del numero limitato di changeset disponibili nel nostro repository d'esempio, non è possibile dare una buona dimostrazione. Consultare le pagine relative sul [http://www.selenic.com/mercurial/hg.1.html#log manuale] per maggiori informazioni.

Il comando log possiede anche un'opzione -p per mostrare le patch associate ai changeset:

$ hg log -r1 -p
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

diff -r 0a04b987be5a -r 82e55d328c8c Makefile
--- /dev/null   Fri Aug 26 01:20:50 2005 -0700
+++ b/Makefile  Fri Aug 26 01:21:28 2005 -0700
@@ -0,0 +1,1 @@
+all: hello

Possiamo anche usare il comando tip per mostrare le informazioni riguardanti il tip, ossia il changeset più recente. Il comando tip si può considerare una scorciatoia per il comando log -r tip.

$ hg tip
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

$ hg log -r tip
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

Ora che abbiamo un'idea della Cronologia dei changesets, passiamo a vedere come gestire le modifiche. Andiamo a [:TutorialPrimaModifica]!


CategoryItalian

TutorialCronologia (last edited 2009-05-19 19:30:58 by localhost)