hgbook

changeset 840:7252e7b7f07d

Final editing for chapters 8-11.
author gpiancastelli
date Fri Aug 21 22:29:44 2009 +0200 (2009-08-21)
parents 0a49072e8c7f
children 1856c2f4835c
files it/ch08-branch.xml it/ch09-undo.xml it/ch10-hook.xml it/ch11-template.xml it/examples/bisect.search.mytest.it it/examples/bisect.search.rest.it it/examples/bisect.search.step1.it it/examples/bisect.search.step2.it it/examples/branch-named.branches.it it/examples/branch-named.commit.it it/examples/branch-named.create.it it/examples/branch-named.foo-commit.it it/examples/branch-named.merge.it it/examples/branch-named.parents.it it/examples/branch-named.rebranch.it it/examples/branch-named.status.it it/examples/branch-named.update-switchy.it it/examples/branch-repo.bugfix.it it/examples/branch-repo.pull.it it/examples/ch09-check_whitespace.py.lst.it it/examples/ch09-hook.ws.better.it it/examples/ch10-notify-config-mail.lst.it it/examples/hook.simple.init.it it/examples/rollback.rollback.it it/examples/rollback.status.it it/examples/tag.log.it it/examples/tag.log.v1.0.it it/examples/tag.tip.it it/examples/template.simple.changelog.it it/examples/template.simple.compact.it it/examples/template.simple.normal.it
line diff
     1.1 --- a/it/ch08-branch.xml	Fri Aug 21 21:42:22 2009 +0200
     1.2 +++ b/it/ch08-branch.xml	Fri Aug 21 22:29:44 2009 +0200
     1.3 @@ -49,7 +49,7 @@
     1.4  
     1.5      <para id="x_377">Non c'è alcun limite al numero di etichette che potete avere in un repository, o al numero di etichette che una singola revisione può avere. Nella pratica, non è una grande idea averne <quote>troppe</quote> (un numero che varierà da progetto a progetto), semplicemente perché le etichette sono pensate per aiutarvi a rintracciare le revisioni: se avete molte etichette, la comodità di usarle per identificare le revisioni diminuisce rapidamente.</para>
     1.6  
     1.7 -    <para id="x_378">Per esempio, se il vostro progetto definisce nuove milestone con una frequenza di alcuni giorni, è perfettamente ragionevole dotare ognuna di un'etichetta. Ma se avete un sistema di assemblaggio continuo che si assicura di poter assemblare ogni revisione in modo pulito, introdurreste troppo rumore etichettando ogni assemblaggio pulito. Invece, potreste etichettare gli assemblaggi falliti (supponendo che siano rari!) o semplicemente evitare di usare le etichette per tenere traccia degli assemblaggi.</para>
     1.8 +    <para id="x_378">Per esempio, se il vostro progetto definisce nuove milestone con una frequenza di alcuni giorni, è perfettamente ragionevole dotare ognuna di un'etichetta. Ma se avete un sistema di assemblaggio continuo che si assicura di poter assemblare ogni revisione senza problemi, introdurreste troppo rumore etichettando ogni assemblaggio pulito. Invece, potreste etichettare gli assemblaggi falliti (supponendo che siano rari!) o semplicemente evitare di usare le etichette per tenere traccia degli assemblaggi.</para>
     1.9  
    1.10      <para id="x_379">Se volete rimuovere un'etichetta che non volete più, usate <command role="hg-cmd">hg tag --remove</command>.</para>
    1.11  
    1.12 @@ -72,7 +72,7 @@
    1.13  
    1.14        <para id="x_37e">Se state risolvendo un conflitto nel file <filename role="special">.hgtags</filename> durante un'unione, c'è una particolarità da ricordare quando modificate il file <filename role="special">.hgtags</filename>: quando Mercurial sta analizzando le etichette in un repository, non legge <emphasis>mai</emphasis> la copia di lavoro del file <filename role="special">.hgtags</filename>, ma legge la revisione del file <emphasis>registrata più recentemente</emphasis>.</para>
    1.15  
    1.16 -      <para id="x_37f">Una sfortunata conseguenza di questo comportamento è che non potete verificare la correttezza del file <filename role="special">.hgtags</filename> risultato dall'unione se non <emphasis>dopo</emphasis> aver effettuato il commit di un cambiamento. Quindi, se vi trovate a risolvere un conflitto su <filename role="special">.hgtags</filename> durante un'unione, assicuratevi di eseguire <command role="hg-cmd">hg tags</command> dopo aver effettuato il commit. Se il comando trova un errore nel file <filename role="special">.hgtags</filename>, vi indicherà la posizione dell'errore, che potrete dunque correggere, registrando la correzione nel repository. Dovreste poi eseguire ancora <command role="hg-cmd">hg tags</command>, giusto per essere sicuri che la vostra correzione sia valida.</para>
    1.17 +      <para id="x_37f">Una sfortunata conseguenza di questo comportamento è che non potete verificare la correttezza del file <filename role="special">.hgtags</filename> risultato dall'unione se non <emphasis>dopo</emphasis> aver effettuato il commit di un cambiamento. Quindi, se vi trovate a risolvere un conflitto su <filename role="special">.hgtags</filename> durante un'unione, assicuratevi di eseguire <command role="hg-cmd">hg tags</command> dopo aver effettuato il commit. Se il comando trova un errore nel file <filename role="special">.hgtags</filename>, vi indicherà la posizione dell'errore, che potrete dunque correggere registrando la correzione nel repository. Dovreste poi eseguire ancora <command role="hg-cmd">hg tags</command>, giusto per essere sicuri che la vostra correzione sia valida.</para>
    1.18      </sect2>
    1.19  
    1.20      <sect2>
    1.21 @@ -115,7 +115,7 @@
    1.22  
    1.23      &interaction.branch-repo.tag;
    1.24  
    1.25 -    <para id="x_38a">Potete quindi clonare un nuovo repository condiviso <literal>mioprogetto-1.0.1</literal> da quella etichetta.</para>
    1.26 +    <para id="x_38a">Potete quindi clonare un nuovo repository condiviso <literal>mioprogetto-1.0.1</literal> a partire da quella etichetta.</para>
    1.27  
    1.28      &interaction.branch-repo.clone;
    1.29  
     2.1 --- a/it/ch09-undo.xml	Fri Aug 21 21:42:22 2009 +0200
     2.2 +++ b/it/ch09-undo.xml	Fri Aug 21 22:29:44 2009 +0200
     2.3 @@ -42,7 +42,7 @@
     2.4  
     2.5        <para id="x_da">&Egrave; pratica comune usare Mercurial mantenendo in repository differenti i rami di sviluppo separati di un progetto. Il vostro gruppo di sviluppo potrebbe avere un repository condiviso per la release <quote>0.9</quote> del vostro progetto e un altro, contenente cambiamenti differenti, per la release <quote>1.0</quote>.</para>
     2.6  
     2.7 -      <para id="x_db">In questa situazione, potete immaginare che pasticcio accadrebbe se aveste un repository <quote>0.9</quote> locale e vi propagaste accidentalmente i cambiamenti dal repository <quote>1.0</quote> condiviso. Nel caso peggiore, potreste non fare abbastanza attenzione e trasmettere quei cambiamenti nell'albero <quote>0.9</quote> condiviso, confondendo tutti gli altri sviluppatori (ma non preoccupatevi, ritorneremo a questo orribile scenario più avanti). Tuttavia, è più probabile che notiate immediatamente l'errore, perché Mercurial vi mostrerà l'URL da cui sta estraendo i cambiamenti, o perché vedrete Mercurial propagare un numero sospettosamente alto di cambiamenti nel repository.</para>
     2.8 +      <para id="x_db">In questa situazione, potete immaginare che pasticcio accadrebbe se aveste un repository <quote>0.9</quote> locale e vi propagaste accidentalmente i cambiamenti dal repository <quote>1.0</quote> condiviso. Nel caso peggiore, potreste non fare abbastanza attenzione e trasmettere quei cambiamenti nell'albero <quote>0.9</quote> condiviso, disorientando tutti gli altri sviluppatori (ma non preoccupatevi, ritorneremo a questo orribile scenario più avanti). Tuttavia, è più probabile che notiate immediatamente l'errore, perché Mercurial vi mostrerà l'URL da cui sta estraendo i cambiamenti, o perché vedrete Mercurial propagare un numero sospettosamente alto di cambiamenti nel repository.</para>
     2.9  
    2.10        <para id="x_dc">Il comando <command role="hg-cmd">hg rollback</command> cancellerà scrupolosamente tutti i changeset che avete appena estratto. Mercurial raggruppa tutti i cambiamenti provenienti da un'invocazione di <command role="hg-cmd">hg pull</command> in una singola transazione, quindi un'unica invocazione di <command role="hg-cmd">hg rollback</command> è tutto quello che vi serve per annullare questo errore.</para>
    2.11  
    2.12 @@ -64,7 +64,7 @@
    2.13  
    2.14        &interaction.rollback.twice;
    2.15  
    2.16 -      <para id="x_e1">Una volta che avete abortito una transazione in un repository, non potete effettuare un'altra cancellazione in quel repository fino a quando non avete eseguito un nuovo inserimento o una nuova estrazione.</para>
    2.17 +      <para id="x_e1">Una volta che avete abortito una transazione in un repository, non potete effettuare un'altra volta questa operazione in quel repository fino a quando non avete eseguito un nuovo inserimento o una nuova estrazione.</para>
    2.18  
    2.19      </sect2>
    2.20    </sect1>
    2.21 @@ -271,7 +271,7 @@
    2.22  	</listitem>
    2.23  	<listitem><para id="x_116">Esegue il commit del risultato come un nuovo changeset che ha <literal>backout</literal> come genitore.</para>
    2.24  	</listitem>
    2.25 -	<listitem><para id="x_117">Se specificate l'opzione <option role="hg-opt-backout">--merge</option> sulla riga di comando, esegue un'unione con <literal>orig</literal> e inserisce i risultati dell'unione nel repository.</para>
    2.26 +	<listitem><para id="x_117">Se specificate l'opzione <option role="hg-opt-backout">--merge</option> sulla riga di comando, esegue un'unione con <literal>orig</literal> ma non inserisce i risultati dell'unione nel repository.</para>
    2.27  	</listitem></orderedlist>
    2.28  
    2.29        <para id="x_118">In alternativa, sarebbe possibile implementare <command role="hg-cmd">hg backout</command> utilizzando <command role="hg-cmd">hg export</command> per esportare il changeset da ritirare sotto forma di diff e poi impiegando l'opzione <option role="cmd-opt-patch">--reverse</option> del comando <command>patch</command> per invertire l'effetto del cambiamento senza gingillarsi con la directory di lavoro. Questo procedimento sembra molto più semplice, ma non funzionerebbe affatto altrettanto bene.</para>
    2.30 @@ -412,9 +412,9 @@
    2.31  
    2.32      <para id="x_12e">Ora introdurremo un po' di terminologia, giusto per chiarire quali sono le parti del processo di ricerca di cui siete responsabili voi e quali sono quelle di cui è responsabile Mercurial. Un <emphasis>test</emphasis> è qualcosa che <emphasis>voi</emphasis> eseguite quando <command role="hg-cmd">hg bisect</command> sceglie un changeset. Una <emphasis>sonda</emphasis> è ciò che <command role="hg-cmd">hg bisect</command> esegue per dirvi se una revisione è buona. Infine, useremo la parola <quote>bisezione</quote> per intendere la <quote>ricerca tramite il comando <command role="hg-cmd">hg bisect</command></quote>.</para>
    2.33  
    2.34 -    <para id="x_12f">Un modo semplice per automatizzare il processo di ricerca sarebbe quello di collaudare semplicemente ogni changeset. Tuttavia, questo approccio è scarsamente scalabile. Se ci volessero dieci minuti per collaudare un singolo changeset e il vostro repository contenesse 10.000 changeset, l'approccio completo impiegherebbe una media di 35 <emphasis>giorni</emphasis> per trovare il changeset che ha introdotto un bug. Anche se sapeste che il bug è stato introdotto in uno degli ultimi 500 changeset e limitaste la ricerca a quelli, dovrebbero trascorrere più di 40 ore per trovare il changeset che ha introdotto il vostro bug.</para>
    2.35 -
    2.36 -    <para id="x_130">Il comando <command role="hg-cmd">hg bisect</command> invece usa la propria conoscenza della <quote>forma</quote> della cronologia delle revisioni del vostro progetto per effettuare una ricerca in tempo proporzionale al <emphasis>logaritmo</emphasis> del numero dei changeset da controllare (il tipo di ricerca che esegue viene chiamata ricerca dicotomica). Con questo approccio, la ricerca attraverso 10.000 changeset impiegherà meno di 3 ore, anche a 10 minuti per ogni test (la ricerca richiederà circa 14 test). Limitate la vostra ricerca agli ultimi cento changeset e il tempo impiegato sarà solo circa un'ora (approssimativamente sette test).</para>
    2.37 +    <para id="x_12f">Un modo semplice per automatizzare il processo di ricerca sarebbe quello di collaudare semplicemente tutti i changeset. Tuttavia, questo approccio è scarsamente scalabile. Se ci volessero dieci minuti per collaudare un singolo changeset e il vostro repository contenesse 10.000 changeset, l'approccio completo impiegherebbe una media di 35 <emphasis>giorni</emphasis> per trovare il changeset che ha introdotto un bug. Anche se sapeste che il bug è stato introdotto in uno degli ultimi 500 changeset e limitaste la ricerca a quelli, dovrebbero trascorrere più di 40 ore per trovare il changeset che ha introdotto il vostro bug.</para>
    2.38 +
    2.39 +    <para id="x_130">Il comando <command role="hg-cmd">hg bisect</command> invece usa la propria conoscenza della <quote>forma</quote> della cronologia delle revisioni del vostro progetto per effettuare una ricerca in tempo proporzionale al <emphasis>logaritmo</emphasis> del numero dei changeset da controllare (il tipo di ricerca che esegue viene chiamata ricerca dicotomica). Con questo approccio, la ricerca attraverso 10.000 changeset impiegherà meno di 3 ore, anche a 10 minuti per test (la ricerca richiederà circa 14 test). Limitate la vostra ricerca agli ultimi cento changeset e il tempo impiegato sarà solo circa un'ora (approssimativamente sette test).</para>
    2.40  
    2.41      <para id="x_131">Il comando <command role="hg-cmd">hg bisect</command> è consapevole della natura <quote>ramificata</quote> della cronologia delle revisioni di un progetto Mercurial, quindi non ha problemi a trattare con rami, unioni, o molteplici teste in un repository. Opera in maniera così efficiente perché è in grado di potare interi rami di cronologia con una singola sonda.</para>
    2.42  
    2.43 @@ -510,7 +510,7 @@
    2.44      <sect2>
    2.45        <title>Fornite informazioni consistenti</title>
    2.46  
    2.47 -      <para id="x_14b">Il comando <command role="hg-cmd">hg bisect</command> vi richiede di indicare correttamente il risultato di ogni test che eseguite. Se gli dite che un test è fallito quando in realtà ha avuto successo, il comando <emphasis>potrebbe</emphasis> essere in grado di scoprire l'inconsistenza. Se riesce a identificare un'incosistenza nei vostri resoconti, vi dirà che un particolare changeset è sia funzionante che guasto. Tuttavia, non è in grado di farlo perfettamente ed è ugualmente probabile che vi restituisca il changeset sbagliato come causa del bug.</para>
    2.48 +      <para id="x_14b">Il comando <command role="hg-cmd">hg bisect</command> vi richiede di indicare correttamente il risultato di ogni test che eseguite. Se gli dite che un test è fallito quando in realtà ha avuto successo, il comando <emphasis>potrebbe</emphasis> essere in grado di scoprire l'inconsistenza. Se riesce a identificare un'inconsistenza nei vostri resoconti, vi dirà che un particolare changeset è sia funzionante che guasto. Tuttavia, non è in grado di farlo perfettamente ed è ugualmente probabile che vi restituisca il changeset sbagliato come causa del bug.</para>
    2.49  
    2.50      </sect2>
    2.51      <sect2>
     3.1 --- a/it/ch10-hook.xml	Fri Aug 21 21:42:22 2009 +0200
     3.2 +++ b/it/ch10-hook.xml	Fri Aug 21 22:29:44 2009 +0200
     3.3 @@ -4,7 +4,7 @@
     3.4  
     3.5    <para id="x_1e6">Mercurial vi offre un potente meccanismo per effettuare azioni automatiche in risposta agli eventi che accadono in un repository. In alcuni casi, potete persino controllare la risposta di Mercurial a questi eventi.</para>
     3.6  
     3.7 -  <para id="x_1e7">Il nome che Mercurial usa per indicare una di queste azioni è <emphasis>hook</emphasis> (letteralmente, gancio). Gli hook vengono chiamati <quote>trigger</quote> (letteralmente, grilletto) in alcuni sistemi di controllo di revisione, ma i due nomi si riferiscono alla stessa idea.</para>
     3.8 +  <para id="x_1e7">Il nome che Mercurial usa per indicare una di queste azioni è <emphasis>hook</emphasis> (letteralmente, gancio). In alcuni sistemi di controllo di revisione, gli hook vengono chiamati <quote>trigger</quote> (letteralmente, grilletto), ma i due nomi si riferiscono alla stessa idea.</para>
     3.9  
    3.10    <sect1>
    3.11      <title>Un'introduzione agli hook di Mercurial</title>
    3.12 @@ -51,7 +51,7 @@
    3.13  
    3.14        <para id="x_1f7">Quando invocate un comando Mercurial in un repository e quel comando causa l'esecuzione di un hook, quell'hook viene eseguito sul <emphasis>vostro</emphasis> sistema, con il <emphasis>vostro</emphasis> account utente, al <emphasis>vostro</emphasis> livello di privilegio. Dato che gli hook sono frammenti di codice eseguibile, dovreste trattarli in maniera adeguatamente sospettosa. Non installate un hook a meno che non confidiate di sapere chi lo ha creato e che cosa fa.</para>
    3.15  
    3.16 -      <para id="x_1f8">In alcuni casi, potreste essere esposti a hook che non avete installato voi. Se lavorate con Mercurial su un sistema che non vi è familiare, sappiate che Mercurial eseguirà gli hook definiti nel file <filename role="special">~/.hgrc</filename> globale per quel sistema.</para>
    3.17 +      <para id="x_1f8">In alcuni casi, potreste essere esposti a hook che non avete installato voi. Se lavorate con Mercurial su un sistema che non vi è familiare, sappiate che Mercurial eseguirà gli hook definiti nel file <filename role="special">hgrc</filename> globale per quel sistema.</para>
    3.18  
    3.19        <para id="x_1f9">Se state lavorando con un repository posseduto da un altro utente, Mercurial può eseguire gli hook definiti nel repository di quell'utente, ma li eseguirà ancora sotto la <quote>vostra identità</quote>. Per esempio, se estraete i cambiamenti da quel repository tramite <command role="hg-cmd">hg pull</command>, e il suo file <filename role="special">.hg/hgrc</filename> definisce un hook <literal role="hook">outgoing</literal> locale, quell'hook verrà eseguito con il vostro account utente anche se non siete il proprietario di quel repository.</para>
    3.20  
    3.21 @@ -71,7 +71,7 @@
    3.22  
    3.23        <para id="x_1fe">Dato che Mercurial non propaga gli hook, se state collaborando con altre persone su un progetto comune, non dovreste presumere che gli altri stiano usando gli stessi hook Mercurial che state usando voi, o che i loro siano correttamente configurati. Dovreste documentare quali sono gli hook che vi aspettate siano usati dalle altre persone.</para>
    3.24  
    3.25 -      <para id="x_1ff">In una intranet aziendale, questo aspetto è in qualche modo più facile da controllare, dato che per esempio potete fornire un'installazione <quote>standard</quote> di Mercurial su un file system NFS e usare un file <filename role="special">~/.hgrc</filename> globale per definire hook che verranno visti da tutti gli utenti. Tuttavia, come constateremo nella prossima sezione, anche questo approccio ha dei limiti.</para>
    3.26 +      <para id="x_1ff">In una intranet aziendale, questo aspetto è in qualche modo più facile da controllare, dato che per esempio potete fornire un'installazione <quote>standard</quote> di Mercurial su un file system NFS e usare un file <filename role="special">hgrc</filename> globale per definire hook che verranno visti da tutti gli utenti. Tuttavia, come constateremo nella prossima sezione, anche questo approccio ha dei limiti.</para>
    3.27      </sect2>
    3.28  
    3.29      <sect2>
    3.30 @@ -79,13 +79,13 @@
    3.31  
    3.32        <para id="x_200">Mercurial vi consente di sostituire una definizione di hook attraverso la sua ridefinizione. Potete disabilitare un hook impostando il suo valore alla stringa vuota, o cambiare il suo comportamento come desiderate.</para>
    3.33  
    3.34 -      <para id="x_201">Se fate ricorso a un file <filename role="special">~/.hgrc</filename> di sistema o globale che definisce alcuni hook, dovreste quindi tenere presente che i vostri utenti sono in grado di disabilitare o sostituire quegli hook.</para>
    3.35 +      <para id="x_201">Se fate ricorso a un file <filename role="special">hgrc</filename> di sistema o globale che definisce alcuni hook, dovreste quindi tenere presente che i vostri utenti sono in grado di disabilitare o sostituire quegli hook.</para>
    3.36      </sect2>
    3.37  
    3.38      <sect2>
    3.39        <title>Assicurarsi che gli hook critici vengano eseguiti</title>
    3.40  
    3.41 -      <para id="x_202">Talvolta potreste voler imporre il rispetto di una politica in modo che gli altri non siano in grado di aggirarla. Per esempio, potreste richiedere a ogni changeset di passare una rigorosa serie di test. La definizione di questo requisito attraverso un hook in un file <filename role="special">~/.hgrc</filename> globale non avrà effetto sui computer portatili degli utenti remoti, e naturalmente gli utenti locali potranno alterarla a piacimento sostituendo quell'hook.</para>
    3.42 +      <para id="x_202">Talvolta potreste voler imporre il rispetto di una politica in modo che gli altri non siano in grado di aggirarla. Per esempio, potreste richiedere a ogni changeset di passare una rigorosa serie di test. La definizione di questo requisito attraverso un hook in un file <filename role="special">hgrc</filename> globale non avrà effetto sui computer portatili degli utenti remoti, e naturalmente gli utenti locali potranno alterarla a piacimento ridefinendo quell'hook.</para>
    3.43  
    3.44        <para id="x_203">Invece, potete istituire le vostre politiche sull'uso di Mercurial in modo che le persone siano tenute a propagare i cambiamenti attraverso un server <quote>ufficiale</quote> ben noto che avete messo in sicurezza e configurato adeguatamente.</para>
    3.45  
    3.46 @@ -233,12 +233,12 @@
    3.47  
    3.48        &ch09-check_whitespace.py.lst;
    3.49  
    3.50 -      <para id="x_236">Questa versione è molto più complessa, ma anche molto più utile. Analizza un diff unificato per vedere se una qualsiasi riga aggiunge spazio bianco in coda e stampa il nome del file e il numero della riga di ogni occorrenza di questo tipo. Anche meglio, se il cambiamento aggiunge spazio bianco in coda, questo hook salva il messaggio di commit e stampa il nome del file salvato prima di uscire e dire a Mercurial di abortire la transazione, in modo che possiate usare l'opzione <option role="hg-opt-commit">-l nomefile</option> del comando <command role="hg-cmd">hg commit</command> per riutilizzare il messaggio di commit salvato una volta che avete corretto il problema.</para>
    3.51 +      <para id="x_236">Questa versione è molto più complessa, ma anche molto più utile. Analizza un diff unificato per vedere se una qualsiasi riga aggiunge spazio bianco in coda e stampa il nome del file e il numero della riga di ogni occorrenza di questo tipo. In più, se il cambiamento aggiunge spazio bianco in coda, questo hook salva il messaggio di commit e stampa il nome del file salvato prima di uscire e dire a Mercurial di abortire la transazione, in modo che, dopo aver corretto il problema, possiate usare l'opzione <option role="hg-opt-commit">-l nomefile</option> del comando <command role="hg-cmd">hg commit</command> per riutilizzare il messaggio di commit salvato.</para>
    3.52  
    3.53        &interaction.ch09-hook.ws.better;
    3.54  
    3.55        <para id="x_237">Come ultima nota a margine, osservate in questo esempio l'uso della funzione di modifica sul posto di <command>sed</command> per eliminare lo spazio bianco in coda da un file. Questo impiego è sufficientemente conciso e utile che lo riprodurrò qui di seguito (usando <command>perl</command> per sicurezza).</para>
    3.56 -      <programlisting>perl -pi -e 's,\s+$,,' nomefile</programlisting>
    3.57 +      <programlisting>perl -pi -e 's,[ \t]+$,,' nomefile</programlisting>
    3.58  
    3.59      </sect2>
    3.60    </sect1>
    3.61 @@ -307,13 +307,11 @@
    3.62        <para id="x_248">L'estensione <literal role="hg-ext">bugzilla</literal> aggiunge un commento a un bug su Bugzilla ogni volta che trova un riferimento all'identificatore di quel bug in un messaggio di commit. Potete installare questo hook su un server condiviso, in modo che l'hook venga eseguito ogni volta che un utente remoto trasmette i cambiamenti a quel server.</para>
    3.63  
    3.64        <para id="x_249">L'hook aggiunge al bug un commento che somiglia a questo (potete configurare i contenuti del commento, come vedrete fra un attimo):</para>
    3.65 -      <programlisting>Changeset aad8b264143a, creato da Mario Rossi
    3.66 -	&lt;mario.rossi@example.com&gt; nel repository vattelapesca,
    3.67 +      <programlisting>Changeset aad8b264143a, creato da Mario Rossi &lt;mario.rossi@example.com&gt; nel repository vattelapesca,
    3.68      fa riferimento a questo bug.
    3.69      Per i dettagli completi, si veda
    3.70 -	http://hg.example.com/vattelapesca?cmd=changeset;node=aad8b264143a
    3.71 -	Descrizione del changeset: risolto bug 10483 proteggendo il codice da alcuni
    3.72 -	puntatori NULL.</programlisting>
    3.73 +    http://hg.example.com/vattelapesca?cmd=changeset;node=aad8b264143a
    3.74 +    Descrizione del changeset: risolto bug 10483 proteggendo il codice da alcuni puntatori NULL.</programlisting>
    3.75        <para id="x_24a">Il valore di questo hook è che automatizza il processo di aggiornamento di un bug ogni volta che un changeset vi fa riferimento. Se lo configurate in maniera adeguata, l'hook faciliterà la navigazione diretta da un bug su Bugzilla a un changeset che si riferisce a quel bug.</para>
    3.76  
    3.77        <para id="x_24b">Potete usare il codice di questo hook come un punto di partenza per ricette più esotiche di integrazione con Bugzilla. Ecco alcune possibilità.</para>
    3.78 @@ -326,7 +324,7 @@
    3.79        <sect3 id="sec:hook:bugzilla:config">
    3.80  	<title>Configurare l'hook <literal role="hook">bugzilla</literal></title>
    3.81  
    3.82 -	<para id="x_24e">Dovreste configurare questo hook nel file <filename role="special">~/.hgrc</filename> del vostro server come un hook <literal role="hook">incoming</literal>, per esempio nel modo seguente:</para>
    3.83 +	<para id="x_24e">Dovreste configurare questo hook nel file <filename role="special">hgrc</filename> del vostro server come un hook <literal role="hook">incoming</literal>, per esempio nel modo seguente:</para>
    3.84  	<programlisting>[hooks]
    3.85  incoming.bugzilla = python:hgext.bugzilla.hook</programlisting>
    3.86  
    3.87 @@ -335,7 +333,7 @@
    3.88  	<para id="x_250">Prima di cominciare, dovete installare la libreria di interfaccia Python per MySQL sulla macchina (o le macchine) dove intendete eseguire l'hook. Se non è disponibile sotto forma di pacchetto precompilato per il vostro sistema, potete scaricarla da <citation><xref linkend="bib:mysql"/></citation>.
    3.89  	</para>
    3.90  
    3.91 -	<para id="x_251">Le informazioni di configurazione per questo hook si trovano nella sezione <literal role="rc-bugzilla">bugzilla</literal> del vostro file <filename role="special">~/.hgrc</filename>.
    3.92 +	<para id="x_251">Le informazioni di configurazione per questo hook si trovano nella sezione <literal role="rc-bugzilla">bugzilla</literal> del vostro file <filename role="special">hgrc</filename>.
    3.93  	</para>
    3.94  	<itemizedlist>
    3.95  	  <listitem><para id="x_252"><envar role="rc-item-bugzilla">version</envar>: la versione di Bugzilla installata sul server. Lo schema di database usato da Bugzilla cambia occasionalmente, quindi questo hook deve sapere esattamente quale schema usare.</para>
    3.96 @@ -349,7 +347,7 @@
    3.97  	  </listitem>
    3.98  	  <listitem><para id="x_256"><envar role="rc-item-bugzilla">db</envar>: il nome del database Bugzilla sul server MySQL. Il valore predefinito di questo elemento è <literal>bugs</literal>, che è il nome standard del database MySQL dove Bugzilla memorizza i propri dati.</para>
    3.99  	  </listitem>
   3.100 -	  <listitem><para id="x_257"><envar role="rc-item-bugzilla">notify</envar>: se volete che Bugzilla spedisca un'email di notifica agli interessati dopo che questo hook ha aggiunto un commento a un bug, avrete bisogno che questo hook esegua un comando ogni volta che aggiorna il database. Il comando da eseguire dipende da dove avete installato Bugzilla, ma tipicamente somiglierà al seguente, se avete installato Bugzilla in <filename class="directory">/var/www/html/bugzilla</filename>:</para>
   3.101 +	  <listitem><para id="x_257"><envar role="rc-item-bugzilla">notify</envar>: se volete che Bugzilla spedisca un'email di notifica agli interessati dopo che questo hook ha aggiunto un commento a un bug, è necessario che questo hook esegua un comando ogni volta che aggiorna il database. Il comando da eseguire dipende da dove avete installato Bugzilla, ma tipicamente somiglierà al seguente, se avete installato Bugzilla in <filename class="directory">/var/www/html/bugzilla</filename>:</para>
   3.102  	    <programlisting>cd /var/www/html/bugzilla &amp;&amp;
   3.103  	      ./processmail %s nessuno@example.com</programlisting>
   3.104  	  <para id="x_258">Il programma <literal>processmail</literal> di Bugzilla si aspetta che gli vengano passati un identificatore di bug (l'hook sostituisce <quote><literal>%s</literal></quote> con l'identificatore di bug) e un indirizzo email. Si aspetta anche di essere in grado di scrivere su alcuni file nella directory in cui viene eseguito. Se Bugzilla e questo hook non sono installati sulla stessa macchina, dovrete trovare un modo per eseguire <literal>processmail</literal> sul server dove Bugzilla è installato.</para>
   3.105 @@ -364,7 +362,7 @@
   3.106  	<para id="x_25a">Ogni elemento nella sezione <literal role="rc-usermap">usermap</literal> contiene un indirizzo email sulla sinistra e un nome utente Bugzilla sulla destra.</para>
   3.107  	<programlisting>[usermap]
   3.108  maria.bianchi@example.com = maria</programlisting>
   3.109 -	<para id="x_25b">Potete tenere i dati della sezione <literal role="rc-usermap">usermap</literal> in un normale file <filename role="special">~/.hgrc</filename>, oppure dire all'hook <literal role="hg-ext">bugzilla</literal> di leggere le informazioni da un file <filename>usermap</filename> esterno. In quest'ultimo caso, potete memorizzare i dati del file <filename>usermap</filename> separatamente in un repository modificabile dall'utente, per esempio. Questo vi permette di dare ai vostri utenti la possibilità di mantenere le proprie voci nella sezione <envar role="rc-item-bugzilla">usermap</envar>. Il file <filename role="special">~/.hgrc</filename> principale potrebbe somigliare a questo:</para>
   3.110 +	<para id="x_25b">Potete tenere i dati della sezione <literal role="rc-usermap">usermap</literal> in un normale file <filename role="special">hgrc</filename>, oppure dire all'hook <literal role="hg-ext">bugzilla</literal> di leggere le informazioni da un file <filename>usermap</filename> esterno. In quest'ultimo caso, potete memorizzare i dati del file <filename>usermap</filename> separatamente in un repository modificabile dall'utente, per esempio. Questo vi permette di dare ai vostri utenti la possibilità di mantenere le proprie voci nella sezione <envar role="rc-item-bugzilla">usermap</envar>. Il file <filename role="special">hgrc</filename> principale potrebbe somigliare a questo:</para>
   3.111  	<programlisting># il normale file hgrc fa riferimento a un file di correlazioni esterno
   3.112  [bugzilla]
   3.113  usermap = /home/hg/repos/datiutente/bugzilla-usermap.conf</programlisting>
   3.114 @@ -377,14 +375,14 @@
   3.115        <sect3>
   3.116  	<title>Configurare il testo che viene aggiunto a un bug</title>
   3.117  
   3.118 -	<para id="x_25d">Potete configurare il testo che questo hook aggiunge come commento specificandolo sotto forma di template Mercurial. Diverse voci del file <filename role="special">~/.hgrc</filename> (sempre nella sezione <literal role="rc-bugzilla">bugzilla</literal>) controllano questo comportamento.</para>
   3.119 +	<para id="x_25d">Potete configurare il testo che questo hook aggiunge come commento specificandolo sotto forma di template Mercurial. Diverse voci del file <filename role="special">hgrc</filename> (sempre nella sezione <literal role="rc-bugzilla">bugzilla</literal>) controllano questo comportamento.</para>
   3.120  	<itemizedlist>
   3.121  	  <listitem><para id="x_25e"><literal>strip</literal>: il numero di parti iniziali da eliminare dal percorso di un repository per costruire un percorso parziale da usare in un URL. Per esempio, se i repository sul vostro server si trovano nella directory <filename class="directory">/home/hg/repos</filename>, e voi avete un repository il cui percorso è <filename class="directory">/home/hg/repos/app/test</filename>, allora impostando <literal>strip</literal> a <literal>4</literal> otterrete il percorso parziale <filename class="directory">app/test</filename>. L'hook renderà disponibile questo percorso parziale con il nome <literal>webroot</literal> durante l'espansione di un template.</para>
   3.122  	  </listitem>
   3.123  	  <listitem><para id="x_25f"><literal>template</literal>: il testo del template da usare. In aggiunta alle solite variabili relative ai changeset, questo template può usare <literal>hgweb</literal> (il valore dell'elemento di configurazione <literal>hgweb</literal> menzionato in precedenza) e <literal>webroot</literal> (il percorso costruito usando l'elemento <literal>strip</literal> appena descritto).</para>
   3.124  	  </listitem></itemizedlist>
   3.125  
   3.126 -	<para id="x_260">In più, potete aggiungere un elemento <envar role="rc-item-web">baseurl</envar> alla sezione <literal role="rc-web">web</literal> del vostro file <filename role="special">~/.hgrc</filename>. L'hook <literal role="hg-ext">bugzilla</literal> lo renderà disponibile durante l'espansione di un template, come la stringa di base da usare nel costruire un URL che permetterà agli utenti di navigare da un commento Bugzilla verso un changeset correlato. Ecco un esempio di come usare questo elemento:</para>
   3.127 +	<para id="x_260">In più, potete aggiungere un elemento <envar role="rc-item-web">baseurl</envar> alla sezione <literal role="rc-web">web</literal> del vostro file <filename role="special">hgrc</filename>. L'hook <literal role="hg-ext">bugzilla</literal> lo renderà disponibile durante l'espansione di un template, come la stringa di base da usare nel costruire un URL che permetterà agli utenti di navigare da un commento Bugzilla verso un changeset correlato. Ecco un esempio di come usare questo elemento:</para>
   3.128  	<programlisting>[web]
   3.129  baseurl = http://hg.example.com/</programlisting>
   3.130  
   3.131 @@ -436,11 +434,11 @@
   3.132  # spedisci un'email per cambiamento
   3.133  incoming.notify = python:hgext.notify.hook</programlisting>
   3.134  
   3.135 -	<para id="x_26e">Le informazioni di configurazione per questo hook si trovano nella sezione <literal role="rc-notify">notify</literal> del file <filename role="special">~/.hgrc</filename>.</para>
   3.136 +	<para id="x_26e">Le informazioni di configurazione per questo hook si trovano nella sezione <literal role="rc-notify">notify</literal> del file <filename role="special">hgrc</filename>.</para>
   3.137  	<itemizedlist>
   3.138 -	  <listitem><para id="x_26f"><envar role="rc-item-notify">test</envar>: per default, questo hook non spedisce alcuna email, ma stampa il messaggio che <emphasis>avrebbe</emphasis> inviato. Impostate questo elemento a <literal>false</literal> per consentire la spedizione delle email. La ragione per cui la spedizione delle email è disabilitata per default è che ci vogliono diverse prove per configurare questa estensione esattamente come vorreste, e non starebbe bene infastidire gli interessati con un certo numero di notifiche <quote>guaste</quote> mentre correggete la vostra configurazione.</para>
   3.139 -	  </listitem>
   3.140 -	  <listitem><para id="x_270"><envar role="rc-item-notify">config</envar>: il percorso di un file di configurazione che contiene le informazioni di iscrizione. Questo viene tenuto separato dal file <filename role="special">~/.hgrc</filename> principale in modo che possiate mantenerlo in un proprio repository. Le persone possono poi clonare quel repository, aggiornare le proprie iscrizioni e trasmettere i cambiamenti al vostro server.</para>
   3.141 +	  <listitem><para id="x_26f"><envar role="rc-item-notify">test</envar>: per default, questo hook non spedisce alcuna email, ma stampa il messaggio che <emphasis>verrebbe</emphasis> inviato. Impostate questo elemento a <literal>false</literal> per consentire la spedizione delle email. La ragione per cui la spedizione delle email è disabilitata per default è che ci vogliono diverse prove per configurare questa estensione esattamente come vorreste, e non starebbe bene infastidire gli interessati con un certo numero di notifiche <quote>sbagliate</quote> mentre correggete la vostra configurazione.</para>
   3.142 +	  </listitem>
   3.143 +	  <listitem><para id="x_270"><envar role="rc-item-notify">config</envar>: il percorso di un file di configurazione che contiene le informazioni di iscrizione. Questo viene tenuto separato dal file <filename role="special">hgrc</filename> principale in modo che possiate mantenerlo in un proprio repository. Le persone possono poi clonare quel repository, aggiornare le proprie iscrizioni e trasmettere i cambiamenti al vostro server.</para>
   3.144  	  </listitem>
   3.145  	  <listitem><para id="x_271"><envar role="rc-item-notify">strip</envar>: il numero di parti iniziali da eliminare dal percorso di un repository quando state decidendo se è possibile iscriversi al servizio di notifica per un repository. Per esempio, se i repository sul vostro server si trovano in <filename class="directory">/home/hg/repos</filename>, e <literal role="hg-ext">notify</literal> sta considerando un repository chiamato <filename class="directory">/home/hg/repos/condivisi/test</filename>, impostare <envar role="rc-item-notify">strip</envar> a <literal>4</literal> farà in modo che <literal role="hg-ext">notify</literal> restringa il percorso da considerare a <filename class="directory">condivisi/test</filename> e associ le iscrizioni a questo percorso.</para>
   3.146  	  </listitem>
   3.147 @@ -465,7 +463,7 @@
   3.148        <sect3>
   3.149  	<title>Collaudo e risoluzione dei problemi</title>
   3.150  
   3.151 -	<para id="x_278">Non dimenticate che il comportamento predefinito dell'estensione <literal role="hg-ext">notify</literal> è quello di <emphasis>non spedire alcuna mail</emphasis> fino a quando non lo avete esplicitamente configurato per farlo, impostando <envar role="rc-item-notify">test</envar> a <literal>false</literal>. Fino a quel momento, si limiterà a stampare il messaggio che <emphasis>avrebbe</emphasis> inviato.</para>
   3.152 +	<para id="x_278">Non dimenticate che il comportamento predefinito dell'estensione <literal role="hg-ext">notify</literal> è quello di <emphasis>non spedire alcuna mail</emphasis> fino a quando non lo avete esplicitamente configurato per farlo, impostando <envar role="rc-item-notify">test</envar> a <literal>false</literal>. Fino a quel momento, si limiterà a stampare il messaggio che <emphasis>verrebbe</emphasis> inviato.</para>
   3.153  
   3.154        </sect3>
   3.155      </sect2>
   3.156 @@ -481,7 +479,7 @@
   3.157      pass</programlisting>
   3.158        <para id="x_27a">Il parametro <literal>ui</literal> è un oggetto di tipo <literal role="py-mod-mercurial.ui">mercurial.ui.ui</literal>. Il parametro <literal>repo</literal> è un oggetto di tipo <literal role="py-mod-mercurial.localrepo">mercurial.localrepo.localrepository</literal>. I nomi e i valori dei parametri <literal>**kwargs</literal> dipendono dall'hook coinvolto, ma hanno le seguenti caratteristiche comuni:</para>
   3.159        <itemizedlist>
   3.160 -	<listitem><para id="x_27b">Se un parametro si chiama <literal>node</literal> o <literal>parentN</literal>, conterrà un identificatore esadecimale di changeset. La stringa vuota viene usata per rappresentare l'identificatore di changeset <quote>nullo</quote> invece di una stringa di zeri.</para>
   3.161 +	<listitem><para id="x_27b">Se un parametro si chiama <literal>node</literal> o <literal>parentN</literal>, conterrà un identificatore esadecimale di changeset. Per rappresentare l'identificatore di changeset <quote>nullo</quote>, viene usata una stringa vuota invece di una stringa di zeri.</para>
   3.162  	</listitem>
   3.163  	<listitem><para id="x_27c">Se un parametro si chiama <literal>url</literal>, conterrà l'URL di un repository remoto, nel caso possa essere determinato.</para>
   3.164  	</listitem>
   3.165 @@ -503,7 +501,7 @@
   3.166  
   3.167        <para id="x_282">I parametri di hook sono passati all'hook sotto forma di variabili d'ambiente. Il nome di ogni variabile d'ambiente viene convertito in maiuscolo e fatto precedere dalla stringa <quote><literal>HG_</literal></quote>. Per esempio, se il nome di un parametro è <quote><literal>node</literal></quote>, il nome della variabile d'ambiente che rappresenta quel parametro sarà <quote><literal>HG_NODE</literal></quote>.</para>
   3.168  
   3.169 -      <para id="x_283">Un parametro booleano è rappresentato come la stringa <quote><literal>1</literal></quote> se è <quote>vero</quote> o <quote><literal>0</literal></quote> se è <quote>falso</quote>. Se una variabile d'ambiente è chiamata <envar>HG_NODE</envar>, <envar>HG_PARENT1</envar>, o <envar>HG_PARENT2</envar>, conterrà un identificatore di changeset rappresentato come una stringa esadecimale. La stringa vuota viene usata per rappresentare l'identificatore di changeset <quote>nullo</quote> invece di una stringa di zeri. Se una variabile d'ambiente è chiamata <envar>HG_URL</envar>, conterrà l'URL di un repository remoto, nel caso possa essere determinato.</para>
   3.170 +      <para id="x_283">Un parametro booleano è rappresentato come la stringa <quote><literal>1</literal></quote> se è <quote>vero</quote> o <quote><literal>0</literal></quote> se è <quote>falso</quote>. Se una variabile d'ambiente è chiamata <envar>HG_NODE</envar>, <envar>HG_PARENT1</envar>, o <envar>HG_PARENT2</envar>, conterrà un identificatore di changeset rappresentato come una stringa esadecimale. Per rappresentare l'identificatore di changeset <quote>nullo</quote>, viene usata una stringa vuota invece di una stringa di zeri. Se una variabile d'ambiente è chiamata <envar>HG_URL</envar>, conterrà l'URL di un repository remoto, nel caso possa essere determinato.</para>
   3.171  
   3.172        <para id="x_284">Se un hook termina con uno stato uguale a zero, si considera terminato con successo. Se termina con uno stato diverso da zero, si considera fallito.</para>
   3.173      </sect2>
   3.174 @@ -744,7 +742,7 @@
   3.175      <sect2 id="sec:hook:preupdate">
   3.176        <title><literal role="hook">preupdate</literal>&emdash;prima di eseguire un aggiornamento o un'unione della directory di lavoro</title>
   3.177  
   3.178 -      <para id="x_2d7">Questo hook viene eseguito prima di cominciare un aggiornamento o un'unione della directory di lavoro. Viene eseguito solo se i normali controlli effettuati da Mercurial prima di un aggiornamento determinano che l'aggiornamento o l'unione possono procedere. Se l'hook ha successo, l'aggiornamento o l'unione possono procedere, ma se fallisce, l'aggiornameno o l'unione non vengono cominciati.</para>
   3.179 +      <para id="x_2d7">Questo hook viene eseguito prima di cominciare un aggiornamento o un'unione della directory di lavoro. Viene eseguito solo se i normali controlli effettuati da Mercurial prima di un aggiornamento determinano che l'aggiornamento o l'unione possono procedere. Se l'hook ha successo, l'aggiornamento o l'unione possono procedere, ma se fallisce, l'aggiornamento o l'unione non vengono cominciati.</para>
   3.180  
   3.181        <para id="x_2d8">I parametri di questo hook sono i seguenti.</para>
   3.182        <itemizedlist>
     4.1 --- a/it/ch11-template.xml	Fri Aug 21 21:42:22 2009 +0200
     4.2 +++ b/it/ch11-template.xml	Fri Aug 21 22:29:44 2009 +0200
     4.3 @@ -17,7 +17,7 @@
     4.4  
     4.5      &interaction.template.simple.compact;
     4.6  
     4.7 -    <para id="x_57c">Lo stile <literal>changelog</literal> ci dà un'idea quale sia il potere espressivo del motore di template di Mercurial. Questo stile tenta di seguire le linee guida per la formattazione di un registro dei cambiamenti stabilite dal progetto GNU <citation><xref linkend="bib:gnu"/></citation>.</para>
     4.8 +    <para id="x_57c">Lo stile <literal>changelog</literal> ci dà un'idea di quale sia il potere espressivo del motore di template di Mercurial. Questo stile tenta di seguire le linee guida per la formattazione di un registro dei cambiamenti stabilite dal progetto GNU <citation><xref linkend="bib:gnu"/></citation>.</para>
     4.9  
    4.10      &interaction.template.simple.changelog;
    4.11  
    4.12 @@ -40,7 +40,7 @@
    4.13  
    4.14      <para id="x_580">Tutti i comandi Mercurial di tipo <literal>log</literal> vi permettono di usare stili e template: <command role="hg-cmd">hg incoming</command>, <command role="hg-cmd">hg log</command>, <command role="hg-cmd">hg outgoing</command> e <command role="hg-cmd">hg tip</command>.</para>
    4.15  
    4.16 -    <para id="x_581">Al momento di scrivere questo manuale, quelli elencati sono i comandi che finora supportano stili e template. Dato che questi sono i comandi più importanti che necessitino di una formattazione personalizzabile, la comunità utenti di Mercurial non ha fatto molta pressione per aggiungere il supporto per stili e template ad altri comandi.</para>
    4.17 +    <para id="x_581">Al momento di scrivere questo manuale, quelli elencati sono i comandi che finora supportano stili e template. Dato che questi sono i comandi più importanti per i quali è necessaria una formattazione personalizzabile, la comunità utenti di Mercurial non ha fatto molta pressione per aggiungere il supporto per stili e template ad altri comandi.</para>
    4.18    </sect1>
    4.19  
    4.20    <sect1>
    4.21 @@ -112,7 +112,7 @@
    4.22      <para id="x_597">Il motore di template di Mercurial riconosce le sequenze di escape più comunemente usate nelle stringhe. Quando trova un carattere di backslash (<quote><literal>\</literal></quote>), esamina il carattere successivo e rimpiazza i due caratteri con un unico sostituto, come descritto qui di seguito.</para>
    4.23  
    4.24      <itemizedlist>
    4.25 -      <listitem><para id="x_598"><literal>\</literal>:
    4.26 +      <listitem><para id="x_598"><literal>\\</literal>:
    4.27  	  backslash, <quote><literal>\</literal></quote>, corrispondente al codice ASCII 134.</para>
    4.28        </listitem>
    4.29        <listitem><para id="x_599"><literal>\n</literal>: nuova riga, codice ASCII 12.</para>
    4.30 @@ -274,7 +274,7 @@
    4.31  	</listitem>
    4.32  	<listitem><para id="x_5cf">Infine, viene fornita una descrizione di quello che è andato storto.</para>
    4.33  	  <programlisting>fallimento: stile.errato:1: ___errore di riconoscimento___</programlisting>
    4.34 -	<para id="x_5d0">La descrizione del problema non è sempre chiara (come in questo caso), ma anche quando è criptica, è quasi sempre banale trovare la causa dell'errore inspezionando visivamente la riga del file di stile che contiene il problema.</para>
    4.35 +	<para id="x_5d0">La descrizione del problema non è sempre chiara (come in questo caso) ma, anche quando è criptica, è quasi sempre banale trovare la causa dell'errore inspezionando visivamente la riga del file di stile che contiene il problema.</para>
    4.36  	</listitem>
    4.37        </itemizedlist>
    4.38      </sect2>
    4.39 @@ -332,7 +332,7 @@
    4.40  
    4.41        &interaction.template.svnstyle.style;
    4.42  
    4.43 -      <para id="x_5df">Avremmo potuto includere il testo del file di template direttamente nel file di stile, circondandolo con virgolette e rimpiazzando le nuove righe con sequenze <quote><literal>\n</literal></quote>, ma questo avrebbe reso il file di stile troppo difficile da leggere. La leggibilità è una buon criterio da cui farsi guidare per decidere se un certo testo appartiene a un file di stile o a un file di template a cui il file di stile fa riferimento. Nel caso il file di stile vi sembri troppo grande o disordinato se inserite un frammento letterale di testo, allora spostate il testo in un template.</para>
    4.44 +      <para id="x_5df">Avremmo potuto includere il testo del file di template direttamente nel file di stile, circondandolo con virgolette e rimpiazzando le nuove righe con sequenze <quote><literal>\n</literal></quote>, ma questo avrebbe reso il file di stile troppo difficile da leggere. La leggibilità è un buon criterio da cui farsi guidare per decidere se un certo testo appartiene a un file di stile o a un file di template a cui il file di stile fa riferimento. Nel caso il file di stile vi sembri troppo grande o disordinato se inserite un frammento letterale di testo, allora spostate il testo in un template.</para>
    4.45      </sect2>
    4.46    </sect1>
    4.47  </chapter>
     5.1 --- a/it/examples/bisect.search.mytest.it	Fri Aug 21 21:42:22 2009 +0200
     5.2 +++ b/it/examples/bisect.search.mytest.it	Fri Aug 21 22:29:44 2009 +0200
     5.3 @@ -2,12 +2,14 @@
     5.4  <screen><prompt>$</prompt> <userinput>miotest() {</userinput>
     5.5  <prompt>$</prompt> <userinput>  if grep -q 'ho un gub' *</userinput>
     5.6  <prompt>></prompt> <userinput>  then</userinput>
     5.7 -<prompt>></prompt> <userinput>    risultato=bad</userinput>
     5.8 +<prompt>></prompt> <userinput>    contrassegno=bad</userinput>
     5.9 +<prompt>></prompt> <userinput>    risultato=guasta</userinput>
    5.10  <prompt>></prompt> <userinput>  else</userinput>
    5.11 -<prompt>></prompt> <userinput>    risultato=good</userinput>
    5.12 +<prompt>></prompt> <userinput>    contrassegno=good</userinput>
    5.13 +<prompt>></prompt> <userinput>    risultato=funzionante</userinput>
    5.14  <prompt>></prompt> <userinput>  fi</userinput>
    5.15 -<prompt>></prompt> <userinput>  echo il contrassegno di questa revisione è $risultato</userinput>
    5.16 -<prompt>></prompt> <userinput>  hg bisect --$risultato</userinput>
    5.17 +<prompt>></prompt> <userinput>  echo questa revisione è $risultato</userinput>
    5.18 +<prompt>></prompt> <userinput>  hg bisect --$contrassegno</userinput>
    5.19  <prompt>></prompt> <userinput>}</userinput>
    5.20  </screen>
    5.21  <!-- END bisect.search.mytest -->
     6.1 --- a/it/examples/bisect.search.rest.it	Fri Aug 21 21:42:22 2009 +0200
     6.2 +++ b/it/examples/bisect.search.rest.it	Fri Aug 21 22:29:44 2009 +0200
     6.3 @@ -1,18 +1,18 @@
     6.4  <!-- BEGIN bisect.search.rest -->
     6.5  <screen><prompt>$</prompt> <userinput>miotest</userinput>
     6.6 -il contrassegno di questa revisione è good
     6.7 +questa revisione è funzionante
     6.8  Collaudo il changeset 20:bf7ea9a054e6 (3 changeset rimanenti, ~1 test)
     6.9  1 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
    6.10  <prompt>$</prompt> <userinput>miotest</userinput>
    6.11 -il contrassegno di questa revisione è good
    6.12 +questa revisione è funzionante
    6.13  Collaudo il changeset 21:921391dd45c1 (2 changeset rimanenti, ~1 test)
    6.14  1 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
    6.15  <prompt>$</prompt> <userinput>miotest</userinput>
    6.16 -il contrassegno di questa revisione è good
    6.17 +questa revisione è funzionante
    6.18  La prima revisione guasta è:
    6.19  changeset:   22:b8789808fc48
    6.20 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
    6.21 -date:        Tue May 05 06:55:14 2009 +0000
    6.22 -summary:     Changeset difettoso.
    6.23 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
    6.24 +data:        Tue May 05 06:55:14 2009 +0000
    6.25 +sommario:    Changeset difettoso.
    6.26  </screen>
    6.27  <!-- END bisect.search.rest -->
     7.1 --- a/it/examples/bisect.search.step1.it	Fri Aug 21 21:42:22 2009 +0200
     7.2 +++ b/it/examples/bisect.search.step1.it	Fri Aug 21 22:29:44 2009 +0200
     7.3 @@ -5,7 +5,7 @@
     7.4  <prompt>></prompt> <userinput>else</userinput>
     7.5  <prompt>></prompt> <userinput>  risultato=good</userinput>
     7.6  <prompt>></prompt> <userinput>fi</userinput>
     7.7 -<prompt>$</prompt> <userinput>echo il contrassegno di questa revisione è $risultato</userinput>
     7.8 +<prompt>$</prompt> <userinput>echo il contrassegno di questa revisione è: $risultato</userinput>
     7.9  il contrassegno di questa revisione è bad
    7.10  <prompt>$</prompt> <userinput>hg bisect --$risultato</userinput>
    7.11  Collaudo il changeset 16:e61fdddff53e (12 changeset rimanenti, ~3 test)
     8.1 --- a/it/examples/bisect.search.step2.it	Fri Aug 21 21:42:22 2009 +0200
     8.2 +++ b/it/examples/bisect.search.step2.it	Fri Aug 21 22:29:44 2009 +0200
     8.3 @@ -1,6 +1,6 @@
     8.4  <!-- BEGIN bisect.search.step2 -->
     8.5  <screen><prompt>$</prompt> <userinput>miotest</userinput>
     8.6 -il contrassegno di questa revisione è good
     8.7 +questa revisione è funzionante
     8.8  Collaudo il changeset 19:706df39b003b (6 changeset rimanenti, ~2 test)
     8.9  3 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
    8.10  </screen>
     9.1 --- a/it/examples/branch-named.branches.it	Fri Aug 21 21:42:22 2009 +0200
     9.2 +++ b/it/examples/branch-named.branches.it	Fri Aug 21 22:29:44 2009 +0200
     9.3 @@ -1,10 +1,10 @@
     9.4  <!-- BEGIN branch-named.branches -->
     9.5  <screen><prompt>$</prompt> <userinput>hg tip</userinput>
     9.6  changeset:   0:fc8fb1089cc0
     9.7 -tag:         tip
     9.8 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
     9.9 -date:        Fri Jun 05 15:48:56 2009 +0000
    9.10 -summary:     Commit iniziale.
    9.11 +etichetta:   tip
    9.12 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
    9.13 +data:        Fri Jun 05 15:48:56 2009 +0000
    9.14 +sommario:    Commit iniziale.
    9.15  
    9.16  <prompt>$</prompt> <userinput>hg branches</userinput>
    9.17  default                        0:fc8fb1089cc0
    10.1 --- a/it/examples/branch-named.commit.it	Fri Aug 21 21:42:22 2009 +0200
    10.2 +++ b/it/examples/branch-named.commit.it	Fri Aug 21 22:29:44 2009 +0200
    10.3 @@ -3,11 +3,11 @@
    10.4  <prompt>$</prompt> <userinput>hg commit -m 'Secondo commit.'</userinput>
    10.5  <prompt>$</prompt> <userinput>hg tip</userinput>
    10.6  changeset:   1:b15761055392
    10.7 -branch:      foo
    10.8 -tag:         tip
    10.9 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   10.10 -date:        Fri Jun 05 15:48:59 2009 +0000
   10.11 -summary:     Secondo commit.
   10.12 +ramo:        foo
   10.13 +etichetta:   tip
   10.14 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   10.15 +data:        Fri Jun 05 15:48:59 2009 +0000
   10.16 +sommario:    Secondo commit.
   10.17  
   10.18  </screen>
   10.19  <!-- END branch-named.commit -->
    11.1 --- a/it/examples/branch-named.create.it	Fri Aug 21 21:42:22 2009 +0200
    11.2 +++ b/it/examples/branch-named.create.it	Fri Aug 21 22:29:44 2009 +0200
    11.3 @@ -1,6 +1,6 @@
    11.4  <!-- BEGIN branch-named.create -->
    11.5  <screen><prompt>$</prompt> <userinput>hg branch foo</userinput>
    11.6 -la directory di lavoro è stata segnata come ramo foo
    11.7 +la directory di lavoro è stata contrassegnata come ramo foo
    11.8  <prompt>$</prompt> <userinput>hg branch</userinput>
    11.9  foo
   11.10  </screen>
    12.1 --- a/it/examples/branch-named.foo-commit.it	Fri Aug 21 21:42:22 2009 +0200
    12.2 +++ b/it/examples/branch-named.foo-commit.it	Fri Aug 21 22:29:44 2009 +0200
    12.3 @@ -5,18 +5,18 @@
    12.4  creata una nuova testa
    12.5  <prompt>$</prompt> <userinput>hg heads</userinput>
    12.6  changeset:   3:859c842ea668
    12.7 -branch:      foo
    12.8 -tag:         tip
    12.9 -parent:      1:b15761055392
   12.10 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   12.11 -date:        Fri Jun 05 15:49:04 2009 +0000
   12.12 -summary:     NUovo file.
   12.13 +ramo:        foo
   12.14 +etichetta:   tip
   12.15 +genitore:    1:b15761055392
   12.16 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   12.17 +data:        Fri Jun 05 15:49:04 2009 +0000
   12.18 +sommario:    Nuovo file.
   12.19  
   12.20  changeset:   2:4dce38140953
   12.21 -branch:      bar
   12.22 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   12.23 -date:        Fri Jun 05 15:49:00 2009 +0000
   12.24 -summary:     Terzo commit.
   12.25 +ramo:        bar
   12.26 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   12.27 +data:        Fri Jun 05 15:49:00 2009 +0000
   12.28 +sommario:    Terzo commit.
   12.29  
   12.30  </screen>
   12.31  <!-- END branch-named.foo-commit -->
    13.1 --- a/it/examples/branch-named.merge.it	Fri Aug 21 21:42:22 2009 +0200
    13.2 +++ b/it/examples/branch-named.merge.it	Fri Aug 21 22:29:44 2009 +0200
    13.3 @@ -7,13 +7,13 @@
    13.4  <prompt>$</prompt> <userinput>hg commit -m 'Unione.'</userinput>
    13.5  <prompt>$</prompt> <userinput>hg tip</userinput>
    13.6  changeset:   4:f50f493d0dc0
    13.7 -branch:      bar
    13.8 -tag:         tip
    13.9 -parent:      2:4dce38140953
   13.10 -parent:      3:859c842ea668
   13.11 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   13.12 -date:        Fri Jun 05 15:49:06 2009 +0000
   13.13 -summary:     Unione.
   13.14 +ramo:        bar
   13.15 +etichetta:   tip
   13.16 +genitore:    2:4dce38140953
   13.17 +genitore:    3:859c842ea668
   13.18 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   13.19 +data:        Fri Jun 05 15:49:06 2009 +0000
   13.20 +sommario:    Unione.
   13.21  
   13.22  </screen>
   13.23  <!-- END branch-named.merge -->
    14.1 --- a/it/examples/branch-named.parents.it	Fri Aug 21 21:42:22 2009 +0200
    14.2 +++ b/it/examples/branch-named.parents.it	Fri Aug 21 22:29:44 2009 +0200
    14.3 @@ -1,11 +1,11 @@
    14.4  <!-- BEGIN branch-named.parents -->
    14.5  <screen><prompt>$</prompt> <userinput>hg parents</userinput>
    14.6  changeset:   2:4dce38140953
    14.7 -branch:      bar
    14.8 -tag:         tip
    14.9 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   14.10 -date:        Fri Jun 05 15:49:00 2009 +0000
   14.11 -summary:     Terzo commit.
   14.12 +ramo:        bar
   14.13 +etichetta:   tip
   14.14 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   14.15 +data:        Fri Jun 05 15:49:00 2009 +0000
   14.16 +sommario:    Terzo commit.
   14.17  
   14.18  <prompt>$</prompt> <userinput>hg branches</userinput>
   14.19  bar                            2:4dce38140953
    15.1 --- a/it/examples/branch-named.rebranch.it	Fri Aug 21 21:42:22 2009 +0200
    15.2 +++ b/it/examples/branch-named.rebranch.it	Fri Aug 21 22:29:44 2009 +0200
    15.3 @@ -2,17 +2,17 @@
    15.4  <screen><prompt>$</prompt> <userinput>hg branch</userinput>
    15.5  foo
    15.6  <prompt>$</prompt> <userinput>hg branch bar</userinput>
    15.7 -la directory di lavoro è stata segnata come ramo bar
    15.8 +la directory di lavoro è stata contrassegnata come ramo bar
    15.9  <prompt>$</prompt> <userinput>echo nuovo file &gt; nuovofile</userinput>
   15.10  <prompt>$</prompt> <userinput>hg commit -A -m 'Terzo commit.'</userinput>
   15.11  aggiungo nuovofile
   15.12  <prompt>$</prompt> <userinput>hg tip</userinput>
   15.13  changeset:   2:4dce38140953
   15.14 -branch:      bar
   15.15 -tag:         tip
   15.16 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   15.17 -date:        Fri Jun 05 15:49:00 2009 +0000
   15.18 -summary:     Terzo commit.
   15.19 +ramo:        bar
   15.20 +etichetta:   tip
   15.21 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   15.22 +data:        Fri Jun 05 15:49:00 2009 +0000
   15.23 +sommario:    Terzo commit.
   15.24  
   15.25  </screen>
   15.26  <!-- END branch-named.rebranch -->
    16.1 --- a/it/examples/branch-named.status.it	Fri Aug 21 21:42:22 2009 +0200
    16.2 +++ b/it/examples/branch-named.status.it	Fri Aug 21 22:29:44 2009 +0200
    16.3 @@ -2,10 +2,10 @@
    16.4  <screen><prompt>$</prompt> <userinput>hg status</userinput>
    16.5  <prompt>$</prompt> <userinput>hg tip</userinput>
    16.6  changeset:   0:fc8fb1089cc0
    16.7 -tag:         tip
    16.8 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
    16.9 -date:        Fri Jun 05 15:48:56 2009 +0000
   16.10 -summary:     Commit iniziale
   16.11 +etichetta:   tip
   16.12 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   16.13 +data:        Fri Jun 05 15:48:56 2009 +0000
   16.14 +sommario:    Commit iniziale
   16.15  
   16.16  </screen>
   16.17  <!-- END branch-named.status -->
    17.1 --- a/it/examples/branch-named.update-switchy.it	Fri Aug 21 21:42:22 2009 +0200
    17.2 +++ b/it/examples/branch-named.update-switchy.it	Fri Aug 21 22:29:44 2009 +0200
    17.3 @@ -3,20 +3,20 @@
    17.4  0 file aggiornati, 0 file uniti, 1 file rimossi, 0 file irrisolti
    17.5  <prompt>$</prompt> <userinput>hg parents</userinput>
    17.6  changeset:   1:b15761055392
    17.7 -branch:      foo
    17.8 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
    17.9 -date:        Fri Jun 05 15:48:59 2009 +0000
   17.10 -summary:     Secondo commit.
   17.11 +ramo:        foo
   17.12 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   17.13 +data:        Fri Jun 05 15:48:59 2009 +0000
   17.14 +sommario:    Secondo commit.
   17.15  
   17.16  <prompt>$</prompt> <userinput>hg update bar</userinput>
   17.17  1 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
   17.18  <prompt>$</prompt> <userinput>hg parents</userinput>
   17.19  changeset:   2:4dce38140953
   17.20 -branch:      bar
   17.21 -tag:         tip
   17.22 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   17.23 -date:        Fri Jun 05 15:49:00 2009 +0000
   17.24 -summary:     Terzo commit.
   17.25 +ramo:        bar
   17.26 +etichetta:   tip
   17.27 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   17.28 +data:        Fri Jun 05 15:49:00 2009 +0000
   17.29 +sommario:    Terzo commit.
   17.30  
   17.31  </screen>
   17.32  <!-- END branch-named.update-switchy -->
    18.1 --- a/it/examples/branch-repo.bugfix.it	Fri Aug 21 21:42:22 2009 +0200
    18.2 +++ b/it/examples/branch-repo.bugfix.it	Fri Aug 21 22:29:44 2009 +0200
    18.3 @@ -1,8 +1,8 @@
    18.4  <!-- BEGIN branch-repo.bugfix -->
    18.5 -<screen><prompt>$</prompt> <userinput>hg clone mioprogetto-1.0.1 mia-1.0.1-correzione</userinput>
    18.6 +<screen><prompt>$</prompt> <userinput>hg clone mioprogetto-1.0.1 mia-correzione-1.0.1</userinput>
    18.7  aggiorno la directory di lavoro
    18.8  2 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
    18.9 -<prompt>$</prompt> <userinput>cd mia-1.0.1-correzione</userinput>
   18.10 +<prompt>$</prompt> <userinput>cd mia-correzione-1.0.1</userinput>
   18.11  <prompt>$</prompt> <userinput>echo 'Ho corretto un bug usando solo echo!' &gt;&gt; miofile</userinput>
   18.12  <prompt>$</prompt> <userinput>hg commit -m 'Importante correzione per la versione 1.0.1.'</userinput>
   18.13  <prompt>$</prompt> <userinput>hg push</userinput>
    19.1 --- a/it/examples/branch-repo.pull.it	Fri Aug 21 21:42:22 2009 +0200
    19.2 +++ b/it/examples/branch-repo.pull.it	Fri Aug 21 22:29:44 2009 +0200
    19.3 @@ -5,7 +5,7 @@
    19.4  3 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
    19.5  <prompt>$</prompt> <userinput>cd mioprogetto-unione</userinput>
    19.6  <prompt>$</prompt> <userinput>hg pull ../mioprogetto-1.0.1</userinput>
    19.7 -estraggo da ../myproject-1.0.1
    19.8 +estraggo da ../mioprogetto-1.0.1
    19.9  cerco i cambiamenti
   19.10  aggiungo i changeset
   19.11  aggiungo i manifest
    20.1 --- a/it/examples/ch09-check_whitespace.py.lst.it	Fri Aug 21 21:42:22 2009 +0200
    20.2 +++ b/it/examples/ch09-check_whitespace.py.lst.it	Fri Aug 21 22:29:44 2009 +0200
    20.3 @@ -27,7 +27,7 @@
    20.4              numriga = int(m.group(1))
    20.5              continue
    20.6          # corpo - cerca una riga aggiunta con spazio bianco in coda
    20.7 -        m = re.match(r'\+.*\s$', riga)
    20.8 +        m = re.match(r'\+.*[ \t]$', riga)
    20.9          if m:
   20.10              yield nomefile, numriga
   20.11          if riga and riga[0] in ' +':
    21.1 --- a/it/examples/ch09-hook.ws.better.it	Fri Aug 21 21:42:22 2009 +0200
    21.2 +++ b/it/examples/ch09-hook.ws.better.it	Fri Aug 21 22:29:44 2009 +0200
    21.3 @@ -4,17 +4,12 @@
    21.4  pretxncommit.spazio_bianco = .hg/controllo_spazio_bianco.py
    21.5  <prompt>$</prompt> <userinput>echo 'a ' &gt;&gt; a</userinput>
    21.6  <prompt>$</prompt> <userinput>hg commit -A -m 'Aggiunge una nuova riga con spazio bianco in coda.'</userinput>
    21.7 -a, riga 2: aggiunto spazio bianco in coda
    21.8 +a, riga 1: aggiunto spazio bianco in coda
    21.9  messaggio di commit salvato nel file .hg/commit.save
   21.10  transazione abortita!
   21.11  ripristino completato
   21.12  fallimento: l'hook pretxncommit.spazio_bianco è terminato con codice di stato 1
   21.13  <prompt>$</prompt> <userinput>sed -i 's, *$,,' a</userinput>
   21.14  <prompt>$</prompt> <userinput>hg commit -A -m 'Rimosso spazio bianco in coda.'</userinput>
   21.15 -a, riga 2: aggiunto spazio bianco in coda
   21.16 -messaggio di commit salvato nel file .hg/commit.save
   21.17 -transazione abortita!
   21.18 -ripristino completato
   21.19 -fallimento: l'hook pretxncommit.spazio_bianco è terminato con codice di stato 1
   21.20  </screen>
   21.21  <!-- END ch09/hook.ws.better -->
    22.1 --- a/it/examples/ch10-notify-config-mail.lst.it	Fri Aug 21 21:42:22 2009 +0200
    22.2 +++ b/it/examples/ch10-notify-config-mail.lst.it	Fri Aug 21 22:29:44 2009 +0200
    22.3 @@ -1,6 +1,6 @@
    22.4  <!-- BEGIN ch10/notify-config-mail.lst -->
    22.5  <programlisting>X-Hg-Repo: test/slave
    22.6 -Subject: test/slave: Gestisce l'errore nel caso in cui uno slave non ha alcun master.
    22.7 +Subject: test/slave: Gestisce l'errore nel caso in cui uno slave non ha alcun buffer.
    22.8  Date: Wed,  2 Aug 2006 15:25:46 -0700 (PDT)
    22.9  
   22.10  changeset 3cba9bfe74b5 nel repository /home/hg/repos/test/slave
   22.11 @@ -8,7 +8,7 @@
   22.12  details:
   22.13  http://hg.example.com/test/slave?cmd=changeset;node=3cba9bfe74b5 
   22.14  
   22.15 -description: Gestisce l'errore nel caso in cui uno slave non ha alcun master.
   22.16 +description: Gestisce l'errore nel caso in cui uno slave non ha alcun buffer.
   22.17  
   22.18  diffs (54 lines):
   22.19  diff -r 9d95df7cf2ad -r 3cba9bfe74b5 include/test.h
    23.1 --- a/it/examples/hook.simple.init.it	Fri Aug 21 21:42:22 2009 +0200
    23.2 +++ b/it/examples/hook.simple.init.it	Fri Aug 21 22:29:44 2009 +0200
    23.3 @@ -8,7 +8,7 @@
    23.4  commit = echo inserito $HG_NODE
    23.5  <prompt>$</prompt> <userinput>echo a &gt; a</userinput>
    23.6  <prompt>$</prompt> <userinput>hg add a</userinput>
    23.7 -<prompt>$</prompt> <userinput>hg commit -m "Collaudo l'hook di commit"</userinput>
    23.8 +<prompt>$</prompt> <userinput>hg commit -m "Collaudo l'hook di commit."</userinput>
    23.9  inserito 35ce7b98906996dea87740158ba6c3d7bcfa2448
   23.10  </screen>
   23.11  <!-- END hook.simple.init -->
    24.1 --- a/it/examples/rollback.rollback.it	Fri Aug 21 21:42:22 2009 +0200
    24.2 +++ b/it/examples/rollback.rollback.it	Fri Aug 21 22:29:44 2009 +0200
    24.3 @@ -3,10 +3,10 @@
    24.4  abortisco l'ultima transazione
    24.5  <prompt>$</prompt> <userinput>hg tip</userinput>
    24.6  changeset:   0:ce49f5b59f20
    24.7 -tag:         tip
    24.8 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
    24.9 -date:        Fri Jun 05 15:51:13 2009 +0000
   24.10 -summary:     Primo commit.
   24.11 +etichetta:   tip
   24.12 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   24.13 +data:        Fri Jun 05 15:51:13 2009 +0000
   24.14 +sommario:    Primo commit.
   24.15  
   24.16  <prompt>$</prompt> <userinput>hg status</userinput>
   24.17  M a
    25.1 --- a/it/examples/rollback.status.it	Fri Aug 21 21:42:22 2009 +0200
    25.2 +++ b/it/examples/rollback.status.it	Fri Aug 21 22:29:44 2009 +0200
    25.3 @@ -3,10 +3,10 @@
    25.4  ? b
    25.5  <prompt>$</prompt> <userinput>hg tip</userinput>
    25.6  changeset:   1:249cc777b54f
    25.7 -tag:         tip
    25.8 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
    25.9 -date:        Fri Jun 05 15:51:13 2009 +0000
   25.10 -summary:     Aggiunge il file b.
   25.11 +etichetta:   tip
   25.12 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   25.13 +data:        Fri Jun 05 15:51:13 2009 +0000
   25.14 +sommario:    Aggiunge il file b.
   25.15  
   25.16  </screen>
   25.17  <!-- END rollback.status -->
    26.1 --- a/it/examples/tag.log.it	Fri Aug 21 21:42:22 2009 +0200
    26.2 +++ b/it/examples/tag.log.it	Fri Aug 21 22:29:44 2009 +0200
    26.3 @@ -1,16 +1,16 @@
    26.4  <!-- BEGIN tag.log -->
    26.5  <screen><prompt>$</prompt> <userinput>hg log</userinput>
    26.6  changeset:   1:87dee45bf6ec
    26.7 -tag:         tip
    26.8 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
    26.9 -date:        Fri Jun 05 15:51:18 2009 +0000
   26.10 -summary:     Aggiunta l'etichetta v1.0 per il changeset 35aa95ccc713.
   26.11 +etichetta:   tip
   26.12 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   26.13 +data:        Fri Jun 05 15:51:18 2009 +0000
   26.14 +sommario:    Aggiunta l'etichetta v1.0 per il changeset 35aa95ccc713.
   26.15  
   26.16  changeset:   0:35aa95ccc713
   26.17 -tag:         v1.0
   26.18 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   26.19 -date:        Fri Jun 05 15:51:18 2009 +0000
   26.20 -summary:     Commit iniziale.
   26.21 +etichetta:   v1.0
   26.22 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   26.23 +data:        Fri Jun 05 15:51:18 2009 +0000
   26.24 +sommario:    Commit iniziale.
   26.25  
   26.26  </screen>
   26.27  <!-- END tag.log -->
    27.1 --- a/it/examples/tag.log.v1.0.it	Fri Aug 21 21:42:22 2009 +0200
    27.2 +++ b/it/examples/tag.log.v1.0.it	Fri Aug 21 22:29:44 2009 +0200
    27.3 @@ -4,10 +4,10 @@
    27.4  aggiungo miofile2
    27.5  <prompt>$</prompt> <userinput>hg log -r v1.0</userinput>
    27.6  changeset:   0:35aa95ccc713
    27.7 -tag:         v1.0
    27.8 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
    27.9 -date:        Fri Jun 05 15:51:18 2009 +0000
   27.10 -summary:     Commit iniziale.
   27.11 +etichetta:   v1.0
   27.12 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   27.13 +data:        Fri Jun 05 15:51:18 2009 +0000
   27.14 +sommario:    Commit iniziale.
   27.15  
   27.16  </screen>
   27.17  <!-- END tag.log.v1.0 -->
    28.1 --- a/it/examples/tag.tip.it	Fri Aug 21 21:42:22 2009 +0200
    28.2 +++ b/it/examples/tag.tip.it	Fri Aug 21 22:29:44 2009 +0200
    28.3 @@ -1,10 +1,10 @@
    28.4  <!-- BEGIN tag.tip -->
    28.5  <screen><prompt>$</prompt> <userinput>hg tip</userinput>
    28.6  changeset:   5:9a0bd94354ec
    28.7 -tag:         tip
    28.8 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
    28.9 -date:        Fri Jun 05 15:51:22 2009 +0000
   28.10 -summary:     Aggiunta l'etichetta v1.1 per il changeset 35418c351c2b.
   28.11 +etichetta:   tip
   28.12 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   28.13 +data:        Fri Jun 05 15:51:22 2009 +0000
   28.14 +sommario:    Aggiunta l'etichetta v1.1 per il changeset 35418c351c2b.
   28.15  
   28.16  </screen>
   28.17  <!-- END tag.tip -->
    29.1 --- a/it/examples/template.simple.changelog.it	Fri Aug 21 21:42:22 2009 +0200
    29.2 +++ b/it/examples/template.simple.changelog.it	Fri Aug 21 22:29:44 2009 +0200
    29.3 @@ -14,7 +14,7 @@
    29.4  	Aggiunta una riga alla fine del file &lt;&lt;hello&gt;&gt;.
    29.5  
    29.6  	In più, aggiunto un file con il nome indicativo (almeno spero che qualcuno
    29.7 -    possa considerarlo tale) di goodbye.
    29.8 +	possa considerarlo tale) di goodbye.
    29.9  	[fb5e3583537a] [miaetichetta]
   29.10  
   29.11  	* hello:
    30.1 --- a/it/examples/template.simple.compact.it	Fri Aug 21 21:42:22 2009 +0200
    30.2 +++ b/it/examples/template.simple.compact.it	Fri Aug 21 22:29:44 2009 +0200
    30.3 @@ -6,7 +6,7 @@
    30.4  2[v0.1]   a5ff5617a0be   2009-06-05 15:51 +0000   bos
    30.5    Aggiunta etichetta miaetichetta per il changeset fb5e3583537a
    30.6  
    30.7 -1[mytag]   fb5e3583537a   2009-06-05 15:51 +0000   bos
    30.8 +1[miaetichetta]   fb5e3583537a   2009-06-05 15:51 +0000   bos
    30.9    Aggiunta una riga alla fine del file &lt;&lt;hello&gt;&gt;.
   30.10  
   30.11  0   0afbebcdeafc   2009-06-05 15:51 +0000   bos
    31.1 --- a/it/examples/template.simple.normal.it	Fri Aug 21 21:42:22 2009 +0200
    31.2 +++ b/it/examples/template.simple.normal.it	Fri Aug 21 22:29:44 2009 +0200
    31.3 @@ -1,10 +1,10 @@
    31.4  <!-- BEGIN template.simple.normal -->
    31.5  <screen><prompt>$</prompt> <userinput>hg log -r1</userinput>
    31.6  changeset:   1:fb5e3583537a
    31.7 -tag:         miaetichetta
    31.8 -user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
    31.9 -date:        Fri Jun 05 15:51:24 2009 +0000
   31.10 -summary:     Aggiunta una riga alla fine del file &lt;&lt;hello&gt;&gt;.
   31.11 +etichetta:   miaetichetta
   31.12 +utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
   31.13 +data:        Fri Jun 05 15:51:24 2009 +0000
   31.14 +sommario:    Aggiunta una riga alla fine del file &lt;&lt;hello&gt;&gt;.
   31.15  
   31.16  </screen>
   31.17  <!-- END template.simple.normal -->