Commits

Anonymous committed 7252e7b

Final editing for chapters 8-11.

  • Participants
  • Parent commits 0a49072

Comments (0)

Files changed (31)

File it/ch08-branch.xml

 
     <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>
 
-    <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>
+    <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>
 
     <para id="x_379">Se volete rimuovere un'etichetta che non volete più, usate <command role="hg-cmd">hg tag --remove</command>.</para>
 
 
       <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>
 
-      <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>
+      <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>
     </sect2>
 
     <sect2>
 
     &interaction.branch-repo.tag;
 
-    <para id="x_38a">Potete quindi clonare un nuovo repository condiviso <literal>mioprogetto-1.0.1</literal> da quella etichetta.</para>
+    <para id="x_38a">Potete quindi clonare un nuovo repository condiviso <literal>mioprogetto-1.0.1</literal> a partire da quella etichetta.</para>
 
     &interaction.branch-repo.clone;
 

File it/ch09-undo.xml

 
       <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>
 
-      <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>
+      <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>
 
       <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>
 
 
       &interaction.rollback.twice;
 
-      <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>
+      <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>
 
     </sect2>
   </sect1>
 	</listitem>
 	<listitem><para id="x_116">Esegue il commit del risultato come un nuovo changeset che ha <literal>backout</literal> come genitore.</para>
 	</listitem>
-	<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>
+	<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>
 	</listitem></orderedlist>
 
       <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>
 
     <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>
 
-    <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>
+    <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>
 
-    <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>
+    <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>
 
     <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>
 
     <sect2>
       <title>Fornite informazioni consistenti</title>
 
-      <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>
+      <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>
 
     </sect2>
     <sect2>

File it/ch10-hook.xml

 
   <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>
 
-  <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>
+  <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>
 
   <sect1>
     <title>Un'introduzione agli hook di Mercurial</title>
 
       <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>
 
-      <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>
+      <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>
 
       <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>
 
 
       <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>
 
-      <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>
+      <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>
     </sect2>
 
     <sect2>
 
       <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>
 
-      <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>
+      <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>
     </sect2>
 
     <sect2>
       <title>Assicurarsi che gli hook critici vengano eseguiti</title>
 
-      <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>
+      <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>
 
       <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>
 
 
       &ch09-check_whitespace.py.lst;
 
-      <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>
+      <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>
 
       &interaction.ch09-hook.ws.better;
 
       <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>
-      <programlisting>perl -pi -e 's,\s+$,,' nomefile</programlisting>
+      <programlisting>perl -pi -e 's,[ \t]+$,,' nomefile</programlisting>
 
     </sect2>
   </sect1>
       <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>
 
       <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>
-      <programlisting>Changeset aad8b264143a, creato da Mario Rossi
-	&lt;mario.rossi@example.com&gt; nel repository vattelapesca,
+      <programlisting>Changeset aad8b264143a, creato da Mario Rossi &lt;mario.rossi@example.com&gt; nel repository vattelapesca,
     fa riferimento a questo bug.
     Per i dettagli completi, si veda
-	http://hg.example.com/vattelapesca?cmd=changeset;node=aad8b264143a
-	Descrizione del changeset: risolto bug 10483 proteggendo il codice da alcuni
-	puntatori NULL.</programlisting>
+    http://hg.example.com/vattelapesca?cmd=changeset;node=aad8b264143a
+    Descrizione del changeset: risolto bug 10483 proteggendo il codice da alcuni puntatori NULL.</programlisting>
       <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>
 
       <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>
       <sect3 id="sec:hook:bugzilla:config">
 	<title>Configurare l'hook <literal role="hook">bugzilla</literal></title>
 
-	<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>
+	<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>
 	<programlisting>[hooks]
 incoming.bugzilla = python:hgext.bugzilla.hook</programlisting>
 
 	<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>.
 	</para>
 
-	<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>.
+	<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>.
 	</para>
 	<itemizedlist>
 	  <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>
 	  </listitem>
 	  <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>
 	  </listitem>
-	  <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>
+	  <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>
 	    <programlisting>cd /var/www/html/bugzilla &amp;&amp;
 	      ./processmail %s nessuno@example.com</programlisting>
 	  <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>
 	<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>
 	<programlisting>[usermap]
 maria.bianchi@example.com = maria</programlisting>
-	<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>
+	<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>
 	<programlisting># il normale file hgrc fa riferimento a un file di correlazioni esterno
 [bugzilla]
 usermap = /home/hg/repos/datiutente/bugzilla-usermap.conf</programlisting>
       <sect3>
 	<title>Configurare il testo che viene aggiunto a un bug</title>
 
-	<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>
+	<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>
 	<itemizedlist>
 	  <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>
 	  </listitem>
 	  <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>
 	  </listitem></itemizedlist>
 
-	<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>
+	<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>
 	<programlisting>[web]
 baseurl = http://hg.example.com/</programlisting>
 
 # spedisci un'email per cambiamento
 incoming.notify = python:hgext.notify.hook</programlisting>
 
-	<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>
+	<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>
 	<itemizedlist>
-	  <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>
+	  <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>
 	  </listitem>
-	  <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>
+	  <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>
 	  </listitem>
 	  <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>
 	  </listitem>
       <sect3>
 	<title>Collaudo e risoluzione dei problemi</title>
 
-	<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>
+	<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>
 
       </sect3>
     </sect2>
     pass</programlisting>
       <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>
       <itemizedlist>
-	<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>
+	<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>
 	</listitem>
 	<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>
 	</listitem>
 
       <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>
 
-      <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>
+      <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>
 
       <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>
     </sect2>
     <sect2 id="sec:hook:preupdate">
       <title><literal role="hook">preupdate</literal>&emdash;prima di eseguire un aggiornamento o un'unione della directory di lavoro</title>
 
-      <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>
+      <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>
 
       <para id="x_2d8">I parametri di questo hook sono i seguenti.</para>
       <itemizedlist>

File it/ch11-template.xml

 
     &interaction.template.simple.compact;
 
-    <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>
+    <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>
 
     &interaction.template.simple.changelog;
 
 
     <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>
 
-    <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>
+    <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>
   </sect1>
 
   <sect1>
     <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>
 
     <itemizedlist>
-      <listitem><para id="x_598"><literal>\</literal>:
+      <listitem><para id="x_598"><literal>\\</literal>:
 	  backslash, <quote><literal>\</literal></quote>, corrispondente al codice ASCII 134.</para>
       </listitem>
       <listitem><para id="x_599"><literal>\n</literal>: nuova riga, codice ASCII 12.</para>
 	</listitem>
 	<listitem><para id="x_5cf">Infine, viene fornita una descrizione di quello che è andato storto.</para>
 	  <programlisting>fallimento: stile.errato:1: ___errore di riconoscimento___</programlisting>
-	<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>
+	<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>
 	</listitem>
       </itemizedlist>
     </sect2>
 
       &interaction.template.svnstyle.style;
 
-      <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>
+      <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>
     </sect2>
   </sect1>
 </chapter>

File it/examples/bisect.search.mytest.it

 <screen><prompt>$</prompt> <userinput>miotest() {</userinput>
 <prompt>$</prompt> <userinput>  if grep -q 'ho un gub' *</userinput>
 <prompt>></prompt> <userinput>  then</userinput>
-<prompt>></prompt> <userinput>    risultato=bad</userinput>
+<prompt>></prompt> <userinput>    contrassegno=bad</userinput>
+<prompt>></prompt> <userinput>    risultato=guasta</userinput>
 <prompt>></prompt> <userinput>  else</userinput>
-<prompt>></prompt> <userinput>    risultato=good</userinput>
+<prompt>></prompt> <userinput>    contrassegno=good</userinput>
+<prompt>></prompt> <userinput>    risultato=funzionante</userinput>
 <prompt>></prompt> <userinput>  fi</userinput>
-<prompt>></prompt> <userinput>  echo il contrassegno di questa revisione è $risultato</userinput>
-<prompt>></prompt> <userinput>  hg bisect --$risultato</userinput>
+<prompt>></prompt> <userinput>  echo questa revisione è $risultato</userinput>
+<prompt>></prompt> <userinput>  hg bisect --$contrassegno</userinput>
 <prompt>></prompt> <userinput>}</userinput>
 </screen>
 <!-- END bisect.search.mytest -->

File it/examples/bisect.search.rest.it

 <!-- BEGIN bisect.search.rest -->
 <screen><prompt>$</prompt> <userinput>miotest</userinput>
-il contrassegno di questa revisione è good
+questa revisione è funzionante
 Collaudo il changeset 20:bf7ea9a054e6 (3 changeset rimanenti, ~1 test)
 1 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
 <prompt>$</prompt> <userinput>miotest</userinput>
-il contrassegno di questa revisione è good
+questa revisione è funzionante
 Collaudo il changeset 21:921391dd45c1 (2 changeset rimanenti, ~1 test)
 1 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
 <prompt>$</prompt> <userinput>miotest</userinput>
-il contrassegno di questa revisione è good
+questa revisione è funzionante
 La prima revisione guasta è:
 changeset:   22:b8789808fc48
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Tue May 05 06:55:14 2009 +0000
-summary:     Changeset difettoso.
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Tue May 05 06:55:14 2009 +0000
+sommario:    Changeset difettoso.
 </screen>
 <!-- END bisect.search.rest -->

File it/examples/bisect.search.step1.it

 <prompt>></prompt> <userinput>else</userinput>
 <prompt>></prompt> <userinput>  risultato=good</userinput>
 <prompt>></prompt> <userinput>fi</userinput>
-<prompt>$</prompt> <userinput>echo il contrassegno di questa revisione è $risultato</userinput>
+<prompt>$</prompt> <userinput>echo il contrassegno di questa revisione è: $risultato</userinput>
 il contrassegno di questa revisione è bad
 <prompt>$</prompt> <userinput>hg bisect --$risultato</userinput>
 Collaudo il changeset 16:e61fdddff53e (12 changeset rimanenti, ~3 test)

File it/examples/bisect.search.step2.it

 <!-- BEGIN bisect.search.step2 -->
 <screen><prompt>$</prompt> <userinput>miotest</userinput>
-il contrassegno di questa revisione è good
+questa revisione è funzionante
 Collaudo il changeset 19:706df39b003b (6 changeset rimanenti, ~2 test)
 3 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
 </screen>

File it/examples/branch-named.branches.it

 <!-- BEGIN branch-named.branches -->
 <screen><prompt>$</prompt> <userinput>hg tip</userinput>
 changeset:   0:fc8fb1089cc0
-tag:         tip
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:48:56 2009 +0000
-summary:     Commit iniziale.
+etichetta:   tip
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:48:56 2009 +0000
+sommario:    Commit iniziale.
 
 <prompt>$</prompt> <userinput>hg branches</userinput>
 default                        0:fc8fb1089cc0

File it/examples/branch-named.commit.it

 <prompt>$</prompt> <userinput>hg commit -m 'Secondo commit.'</userinput>
 <prompt>$</prompt> <userinput>hg tip</userinput>
 changeset:   1:b15761055392
-branch:      foo
-tag:         tip
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:48:59 2009 +0000
-summary:     Secondo commit.
+ramo:        foo
+etichetta:   tip
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:48:59 2009 +0000
+sommario:    Secondo commit.
 
 </screen>
 <!-- END branch-named.commit -->

File it/examples/branch-named.create.it

 <!-- BEGIN branch-named.create -->
 <screen><prompt>$</prompt> <userinput>hg branch foo</userinput>
-la directory di lavoro è stata segnata come ramo foo
+la directory di lavoro è stata contrassegnata come ramo foo
 <prompt>$</prompt> <userinput>hg branch</userinput>
 foo
 </screen>

File it/examples/branch-named.foo-commit.it

 creata una nuova testa
 <prompt>$</prompt> <userinput>hg heads</userinput>
 changeset:   3:859c842ea668
-branch:      foo
-tag:         tip
-parent:      1:b15761055392
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:49:04 2009 +0000
-summary:     NUovo file.
+ramo:        foo
+etichetta:   tip
+genitore:    1:b15761055392
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:49:04 2009 +0000
+sommario:    Nuovo file.
 
 changeset:   2:4dce38140953
-branch:      bar
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:49:00 2009 +0000
-summary:     Terzo commit.
+ramo:        bar
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:49:00 2009 +0000
+sommario:    Terzo commit.
 
 </screen>
 <!-- END branch-named.foo-commit -->

File it/examples/branch-named.merge.it

 <prompt>$</prompt> <userinput>hg commit -m 'Unione.'</userinput>
 <prompt>$</prompt> <userinput>hg tip</userinput>
 changeset:   4:f50f493d0dc0
-branch:      bar
-tag:         tip
-parent:      2:4dce38140953
-parent:      3:859c842ea668
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:49:06 2009 +0000
-summary:     Unione.
+ramo:        bar
+etichetta:   tip
+genitore:    2:4dce38140953
+genitore:    3:859c842ea668
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:49:06 2009 +0000
+sommario:    Unione.
 
 </screen>
 <!-- END branch-named.merge -->

File it/examples/branch-named.parents.it

 <!-- BEGIN branch-named.parents -->
 <screen><prompt>$</prompt> <userinput>hg parents</userinput>
 changeset:   2:4dce38140953
-branch:      bar
-tag:         tip
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:49:00 2009 +0000
-summary:     Terzo commit.
+ramo:        bar
+etichetta:   tip
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:49:00 2009 +0000
+sommario:    Terzo commit.
 
 <prompt>$</prompt> <userinput>hg branches</userinput>
 bar                            2:4dce38140953

File it/examples/branch-named.rebranch.it

 <screen><prompt>$</prompt> <userinput>hg branch</userinput>
 foo
 <prompt>$</prompt> <userinput>hg branch bar</userinput>
-la directory di lavoro è stata segnata come ramo bar
+la directory di lavoro è stata contrassegnata come ramo bar
 <prompt>$</prompt> <userinput>echo nuovo file &gt; nuovofile</userinput>
 <prompt>$</prompt> <userinput>hg commit -A -m 'Terzo commit.'</userinput>
 aggiungo nuovofile
 <prompt>$</prompt> <userinput>hg tip</userinput>
 changeset:   2:4dce38140953
-branch:      bar
-tag:         tip
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:49:00 2009 +0000
-summary:     Terzo commit.
+ramo:        bar
+etichetta:   tip
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:49:00 2009 +0000
+sommario:    Terzo commit.
 
 </screen>
 <!-- END branch-named.rebranch -->

File it/examples/branch-named.status.it

 <screen><prompt>$</prompt> <userinput>hg status</userinput>
 <prompt>$</prompt> <userinput>hg tip</userinput>
 changeset:   0:fc8fb1089cc0
-tag:         tip
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:48:56 2009 +0000
-summary:     Commit iniziale
+etichetta:   tip
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:48:56 2009 +0000
+sommario:    Commit iniziale
 
 </screen>
 <!-- END branch-named.status -->

File it/examples/branch-named.update-switchy.it

 0 file aggiornati, 0 file uniti, 1 file rimossi, 0 file irrisolti
 <prompt>$</prompt> <userinput>hg parents</userinput>
 changeset:   1:b15761055392
-branch:      foo
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:48:59 2009 +0000
-summary:     Secondo commit.
+ramo:        foo
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:48:59 2009 +0000
+sommario:    Secondo commit.
 
 <prompt>$</prompt> <userinput>hg update bar</userinput>
 1 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
 <prompt>$</prompt> <userinput>hg parents</userinput>
 changeset:   2:4dce38140953
-branch:      bar
-tag:         tip
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:49:00 2009 +0000
-summary:     Terzo commit.
+ramo:        bar
+etichetta:   tip
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:49:00 2009 +0000
+sommario:    Terzo commit.
 
 </screen>
 <!-- END branch-named.update-switchy -->

File it/examples/branch-repo.bugfix.it

 <!-- BEGIN branch-repo.bugfix -->
-<screen><prompt>$</prompt> <userinput>hg clone mioprogetto-1.0.1 mia-1.0.1-correzione</userinput>
+<screen><prompt>$</prompt> <userinput>hg clone mioprogetto-1.0.1 mia-correzione-1.0.1</userinput>
 aggiorno la directory di lavoro
 2 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
-<prompt>$</prompt> <userinput>cd mia-1.0.1-correzione</userinput>
+<prompt>$</prompt> <userinput>cd mia-correzione-1.0.1</userinput>
 <prompt>$</prompt> <userinput>echo 'Ho corretto un bug usando solo echo!' &gt;&gt; miofile</userinput>
 <prompt>$</prompt> <userinput>hg commit -m 'Importante correzione per la versione 1.0.1.'</userinput>
 <prompt>$</prompt> <userinput>hg push</userinput>

File it/examples/branch-repo.pull.it

 3 file aggiornati, 0 file uniti, 0 file rimossi, 0 file irrisolti
 <prompt>$</prompt> <userinput>cd mioprogetto-unione</userinput>
 <prompt>$</prompt> <userinput>hg pull ../mioprogetto-1.0.1</userinput>
-estraggo da ../myproject-1.0.1
+estraggo da ../mioprogetto-1.0.1
 cerco i cambiamenti
 aggiungo i changeset
 aggiungo i manifest

File it/examples/ch09-check_whitespace.py.lst.it

             numriga = int(m.group(1))
             continue
         # corpo - cerca una riga aggiunta con spazio bianco in coda
-        m = re.match(r'\+.*\s$', riga)
+        m = re.match(r'\+.*[ \t]$', riga)
         if m:
             yield nomefile, numriga
         if riga and riga[0] in ' +':

File it/examples/ch09-hook.ws.better.it

 pretxncommit.spazio_bianco = .hg/controllo_spazio_bianco.py
 <prompt>$</prompt> <userinput>echo 'a ' &gt;&gt; a</userinput>
 <prompt>$</prompt> <userinput>hg commit -A -m 'Aggiunge una nuova riga con spazio bianco in coda.'</userinput>
-a, riga 2: aggiunto spazio bianco in coda
+a, riga 1: aggiunto spazio bianco in coda
 messaggio di commit salvato nel file .hg/commit.save
 transazione abortita!
 ripristino completato
 fallimento: l'hook pretxncommit.spazio_bianco è terminato con codice di stato 1
 <prompt>$</prompt> <userinput>sed -i 's, *$,,' a</userinput>
 <prompt>$</prompt> <userinput>hg commit -A -m 'Rimosso spazio bianco in coda.'</userinput>
-a, riga 2: aggiunto spazio bianco in coda
-messaggio di commit salvato nel file .hg/commit.save
-transazione abortita!
-ripristino completato
-fallimento: l'hook pretxncommit.spazio_bianco è terminato con codice di stato 1
 </screen>
 <!-- END ch09/hook.ws.better -->

File it/examples/ch10-notify-config-mail.lst.it

 <!-- BEGIN ch10/notify-config-mail.lst -->
 <programlisting>X-Hg-Repo: test/slave
-Subject: test/slave: Gestisce l'errore nel caso in cui uno slave non ha alcun master.
+Subject: test/slave: Gestisce l'errore nel caso in cui uno slave non ha alcun buffer.
 Date: Wed,  2 Aug 2006 15:25:46 -0700 (PDT)
 
 changeset 3cba9bfe74b5 nel repository /home/hg/repos/test/slave
 details:
 http://hg.example.com/test/slave?cmd=changeset;node=3cba9bfe74b5 
 
-description: Gestisce l'errore nel caso in cui uno slave non ha alcun master.
+description: Gestisce l'errore nel caso in cui uno slave non ha alcun buffer.
 
 diffs (54 lines):
 diff -r 9d95df7cf2ad -r 3cba9bfe74b5 include/test.h

File it/examples/hook.simple.init.it

 commit = echo inserito $HG_NODE
 <prompt>$</prompt> <userinput>echo a &gt; a</userinput>
 <prompt>$</prompt> <userinput>hg add a</userinput>
-<prompt>$</prompt> <userinput>hg commit -m "Collaudo l'hook di commit"</userinput>
+<prompt>$</prompt> <userinput>hg commit -m "Collaudo l'hook di commit."</userinput>
 inserito 35ce7b98906996dea87740158ba6c3d7bcfa2448
 </screen>
 <!-- END hook.simple.init -->

File it/examples/rollback.rollback.it

 abortisco l'ultima transazione
 <prompt>$</prompt> <userinput>hg tip</userinput>
 changeset:   0:ce49f5b59f20
-tag:         tip
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:51:13 2009 +0000
-summary:     Primo commit.
+etichetta:   tip
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:51:13 2009 +0000
+sommario:    Primo commit.
 
 <prompt>$</prompt> <userinput>hg status</userinput>
 M a

File it/examples/rollback.status.it

 ? b
 <prompt>$</prompt> <userinput>hg tip</userinput>
 changeset:   1:249cc777b54f
-tag:         tip
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:51:13 2009 +0000
-summary:     Aggiunge il file b.
+etichetta:   tip
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:51:13 2009 +0000
+sommario:    Aggiunge il file b.
 
 </screen>
 <!-- END rollback.status -->

File it/examples/tag.log.it

 <!-- BEGIN tag.log -->
 <screen><prompt>$</prompt> <userinput>hg log</userinput>
 changeset:   1:87dee45bf6ec
-tag:         tip
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:51:18 2009 +0000
-summary:     Aggiunta l'etichetta v1.0 per il changeset 35aa95ccc713.
+etichetta:   tip
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:51:18 2009 +0000
+sommario:    Aggiunta l'etichetta v1.0 per il changeset 35aa95ccc713.
 
 changeset:   0:35aa95ccc713
-tag:         v1.0
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:51:18 2009 +0000
-summary:     Commit iniziale.
+etichetta:   v1.0
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:51:18 2009 +0000
+sommario:    Commit iniziale.
 
 </screen>
 <!-- END tag.log -->

File it/examples/tag.log.v1.0.it

 aggiungo miofile2
 <prompt>$</prompt> <userinput>hg log -r v1.0</userinput>
 changeset:   0:35aa95ccc713
-tag:         v1.0
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:51:18 2009 +0000
-summary:     Commit iniziale.
+etichetta:   v1.0
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:51:18 2009 +0000
+sommario:    Commit iniziale.
 
 </screen>
 <!-- END tag.log.v1.0 -->

File it/examples/tag.tip.it

 <!-- BEGIN tag.tip -->
 <screen><prompt>$</prompt> <userinput>hg tip</userinput>
 changeset:   5:9a0bd94354ec
-tag:         tip
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:51:22 2009 +0000
-summary:     Aggiunta l'etichetta v1.1 per il changeset 35418c351c2b.
+etichetta:   tip
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:51:22 2009 +0000
+sommario:    Aggiunta l'etichetta v1.1 per il changeset 35418c351c2b.
 
 </screen>
 <!-- END tag.tip -->

File it/examples/template.simple.changelog.it

 	Aggiunta una riga alla fine del file &lt;&lt;hello&gt;&gt;.
 
 	In più, aggiunto un file con il nome indicativo (almeno spero che qualcuno
-    possa considerarlo tale) di goodbye.
+	possa considerarlo tale) di goodbye.
 	[fb5e3583537a] [miaetichetta]
 
 	* hello:

File it/examples/template.simple.compact.it

 2[v0.1]   a5ff5617a0be   2009-06-05 15:51 +0000   bos
   Aggiunta etichetta miaetichetta per il changeset fb5e3583537a
 
-1[mytag]   fb5e3583537a   2009-06-05 15:51 +0000   bos
+1[miaetichetta]   fb5e3583537a   2009-06-05 15:51 +0000   bos
   Aggiunta una riga alla fine del file &lt;&lt;hello&gt;&gt;.
 
 0   0afbebcdeafc   2009-06-05 15:51 +0000   bos

File it/examples/template.simple.normal.it

 <!-- BEGIN template.simple.normal -->
 <screen><prompt>$</prompt> <userinput>hg log -r1</userinput>
 changeset:   1:fb5e3583537a
-tag:         miaetichetta
-user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;
-date:        Fri Jun 05 15:51:24 2009 +0000
-summary:     Aggiunta una riga alla fine del file &lt;&lt;hello&gt;&gt;.
+etichetta:   miaetichetta
+utente:      Bryan O'Sullivan &lt;bos@serpentine.com&gt;
+data:        Fri Jun 05 15:51:24 2009 +0000
+sommario:    Aggiunta una riga alla fine del file &lt;&lt;hello&gt;&gt;.
 
 </screen>
 <!-- END template.simple.normal -->