# HG changeset patch # User Giulio@puck # Date 1250349757 -7200 # Node ID 15eeeef467d2c0ed65ad608f6fd9a66ea1abc863 # Parent 42e2c9d47ef435fd787c97d12cd35f240f33503e Wording and some other miscellaneous changes. diff -r 42e2c9d47ef4 -r 15eeeef467d2 it/appA-svn.xml --- a/it/appA-svn.xml Sat Aug 15 15:15:39 2009 +0200 +++ b/it/appA-svn.xml Sat Aug 15 17:22:37 2009 +0200 @@ -55,7 +55,7 @@ Convertire molti rami - Il comando hg convert eseguito in precedenza converte solo la cronologia del trunk del repository Subversion. Se invece usiamo l'URL http://python-nose.googlecode.com/svn, Mercurial individuerà automaticamente le directory trunk, tags e branches che compongono il layout usato di solito dai progetti Subversion e le importerà come rami separati. + Il comando hg convert eseguito in precedenza converte solo la cronologia del trunk del repository Subversion. Se invece usiamo l'URL http://python-nose.googlecode.com/svn, Mercurial individuerà automaticamente le directory trunk, tags e branches che compongono la struttura usata di solito dai progetti Subversion e le importerà come rami separati. Per default, a ogni ramo Subversion importato in Mercurial viene assegnato un nome. Dopo che la conversione si è conclusa, potete ottenere una lista dei nomi dei rami attivi nel repository Mercurial usando hg branches -a. Se preferite importare i rami Subversion senza nomi, passate l'opzione al comando hg convert. diff -r 42e2c9d47ef4 -r 15eeeef467d2 it/ch08-branch.xml --- a/it/ch08-branch.xml Sat Aug 15 15:15:39 2009 +0200 +++ b/it/ch08-branch.xml Sat Aug 15 17:22:37 2009 +0200 @@ -21,13 +21,13 @@ Un'etichetta non è altro che un nome simbolico per una revisione. Le etichette esistono puramente per la vostra convenienza: vi offrono un modo comodo e permanente per fare riferimento a una revisione. Mercurial non interpreta in alcun modo i nomi delle etichette che usate, né impone alcuna restrizione sul nome di un'etichetta a parte le poche che sono necessarie affinché l'etichetta possa essere riconosciuta senza ambiguità. Un nome di etichetta non può contenere i seguenti caratteri: - due punti (ASCII 58, + due punti (codice ASCII 58, :) - ritorno a capo (ASCII 13, + ritorno a capo (codice ASCII 13, \r) - nuova riga (ASCII 10, + nuova riga (codice ASCII 10, \n) diff -r 42e2c9d47ef4 -r 15eeeef467d2 it/ch11-template.xml --- a/it/ch11-template.xml Sat Aug 15 15:15:39 2009 +0200 +++ b/it/ch11-template.xml Sat Aug 15 17:22:37 2009 +0200 @@ -113,24 +113,19 @@ \: - backslash, \, ASCII - 134. - - \n: nuova riga, - ASCII 12. - - \r: ritorno a capo, ASCII 15. - - \t: tabulazione, ASCII - 11. - - \v: tabulazione verticale, ASCII 13. - - \{: parentesi graffa aperta, {, ASCII - 173. - - \}: parentesi graffa chusa, }, ASCII - 175. + backslash, \, corrispondente al codice ASCII 134. + + \n: nuova riga, codice ASCII 12. + + \r: ritorno a capo, codice ASCII 15. + + \t: tabulazione, codice ASCII 11. + + \v: tabulazione verticale, codice ASCII 13. + + \{: parentesi graffa aperta, {, codice ASCII 173. + + \}: parentesi graffa chusa, }, codice ASCII 175. Come appena indicato, se volete che l'espansione di un template contenga un carattere \, {, o { letterale, dovete effettuarne l'escape. @@ -141,36 +136,36 @@ Alcuni dei risultati dell'espansione dei template non sono immediatamente facili da usare. Mercurial vi permette di specificare una catena opzionale di filtri per modificare il risultato dell'espansione di una parola chiave. Avete già visto in azione un filtro comune, isodate, usato precedentemente per rendere leggibile una data. - Qui di seguito viene presentata una lista dei filtri più comunemente usati che Mercurial supporta. Mentre alcuni filtri possono essere applicati a qualsiasi testo, altri possono essere usati solo in circostanze specifiche. Il nome di ogni filtro è seguito prima da un'indicazione del contesto in cui può essere usato e poi da una descrizione dei suoi effetti. + Qui di seguito viene presentata una lista dei filtri più comunemente usati che Mercurial supporta. Mentre alcuni filtri possono essere applicati a qualunque testo, altri possono essere usati solo in circostanze specifiche. Il nome di ogni filtro è seguito prima da un'indicazione del contesto in cui può essere usato e poi da una descrizione dei suoi effetti. - addbreaks: qualsiasi testo. Aggiunge un elemento XHTML <br/> prima della fine di ogni riga tranne l'ultima. Per esempio, foo\nbar diventa foo<br/>\nbar. + addbreaks: qualunque testo. Aggiunge un elemento XHTML <br/> prima della fine di ogni riga tranne l'ultima. Per esempio, foo\nbar diventa foo<br/>\nbar. age: parola chiave date. Rappresenta l'età della data, relativa all'ora corrente. Produce stringhe come 10 minuti. - basename: qualsiasi testo, ma utile soprattutto per la parola chiave files e simili. Tratta il testo come un percorso e restituisce il nome di base. Per esempio, foo/bar/baz diventa baz. + basename: qualunque testo, ma utile soprattutto per la parola chiave files e simili. Tratta il testo come un percorso e restituisce il nome di base. Per esempio, foo/bar/baz diventa baz. date: parola chiave date. Presenta una data in un formato simile al comando Unix date, ma includendo il fuso orario. Produce stringhe come Mon Sep 04 15:13:13 2006 -0700. - domain: qualsiasi testo, ma utile soprattutto per la parola chiave author. Trova la prima stringa che somiglia a un indirizzo email e ne estrae il componente del dominio. Per esempio, Bryan O'Sullivan <bos@serpentine.com> diventa serpentine.com. - - email: qualsiasi testo, ma utile soprattutto per la parola chiave author. Estrae la prima stringa che somiglia a un indirizzo email. Per esempio, Bryan O'Sullivan <bos@serpentine.com> diventa bos@serpentine.com. - - escape: qualsiasi testo. Sostituisce i caratteri speciali XML/XHTML &, < e > con entità XML. - - fill68: qualsiasi testo. Manda a capo il testo per farlo stare in 68 colonne. Questo filtro è utile da applicare prima di combinarlo con il filtro tabindent, se volete che il testo non esca dai bordi di una finestra di 80 colonne con caratteri a spaziatura fissa. - - fill76: qualsiasi testo. Manda a capo il testo per farlo stare in 76 colonne. - - firstline: qualsiasi testo. Produce la prima riga del testo, senza alcun carattere di nuova riga alla fine. + domain: qualunque testo, ma utile soprattutto per la parola chiave author. Trova la prima stringa che somiglia a un indirizzo email e ne estrae il componente del dominio. Per esempio, Bryan O'Sullivan <bos@serpentine.com> diventa serpentine.com. + + email: qualunque testo, ma utile soprattutto per la parola chiave author. Estrae la prima stringa che somiglia a un indirizzo email. Per esempio, Bryan O'Sullivan <bos@serpentine.com> diventa bos@serpentine.com. + + escape: qualunque testo. Sostituisce i caratteri speciali XML/XHTML &, < e > con entità XML. + + fill68: qualunque testo. Manda a capo il testo per farlo stare in 68 colonne. Questo filtro è utile da applicare prima di combinarlo con il filtro tabindent, se volete che il testo non esca dai bordi di una finestra di 80 colonne con caratteri a spaziatura fissa. + + fill76: qualunque testo. Manda a capo il testo per farlo stare in 76 colonne. + + firstline: qualunque testo. Produce la prima riga del testo, senza alcun carattere di nuova riga alla fine. hgdate: parola chiave date. Rappresenta la data come una coppia di numeri leggibili. Produce una stringa come 1157407993 25200. isodate: parola chiave date. Rappresenta una data come stringa di testo in formato ISO 8601. Produce una stringa come 2006-09-04 15:13:13 -0700. - obfuscate: qualsiasi testo, ma utile soprattutto per la parola chiave author. Riproduce il testo in ingresso rappresentandolo come una sequenza di entità XML. Questo è utile per impedire ad alcuni programmi particolarmente stupidi utilizzati dagli spammer per raccogliere indirizzi email di copiare i dati destinati a essere visualizzati su schermo. - - person: qualsiasi testo, ma utile soprattutto per la parola chiave author. Produce il testo che precede un indirizzo email. Per esempio, Bryan O'Sullivan <bos@serpentine.com> diventa Bryan O'Sullivan. + obfuscate: qualunque testo, ma utile soprattutto per la parola chiave author. Riproduce il testo in ingresso rappresentandolo come una sequenza di entità XML. Questo è utile per impedire ad alcuni programmi particolarmente stupidi utilizzati dagli spammer per raccogliere indirizzi email di copiare i dati destinati a essere visualizzati su schermo. + + person: qualunque testo, ma utile soprattutto per la parola chiave author. Produce il testo che precede un indirizzo email. Per esempio, Bryan O'Sullivan <bos@serpentine.com> diventa Bryan O'Sullivan. rfc822date: parola chiave date. Rappresenta una data usando lo stesso formato impiegato nelle intestazioni email. Produce una stringa come Mon, 04 Sep 2006 15:13:13 -0700. @@ -178,13 +173,13 @@ shortdate: parola chiave date. Rappresenta l'anno, il mese e il giorno della data. Produce una stringa come 2006-09-04. - strip: qualsiasi testo. Rimuove lo spazio bianco all'inizio e alla fine di una stringa. - - tabindent: qualsiasi testo. Produce il testo, facendo cominciare ogni riga tranne la prima con un carattere di tabulazione. - - urlescape: qualsiasi testo. Effettua l'escape di tutti i caratteri che sono considerati speciali dai riconoscitori di URL. Per esempio, foo bar diventa foo%20bar. - - user: qualsiasi testo, ma utile soprattutto per la parola chiave author. Restituisce la porzione dell'utente di un indirizzo email. Per esempio Bryan O'Sullivan <bos@serpentine.com> diventa bos. + strip: qualunque testo. Rimuove lo spazio bianco all'inizio e alla fine di una stringa. + + tabindent: qualunque testo. Produce il testo, facendo cominciare ogni riga tranne la prima con un carattere di tabulazione. + + urlescape: qualunque testo. Effettua l'escape di tutti i caratteri che sono considerati speciali dai riconoscitori di URL. Per esempio, foo bar diventa foo%20bar. + + user: qualunque testo, ma utile soprattutto per la parola chiave author. Restituisce la porzione dell'utente di un indirizzo email. Per esempio Bryan O'Sullivan <bos@serpentine.com> diventa bos. diff -r 42e2c9d47ef4 -r 15eeeef467d2 it/ch12-mq.xml --- a/it/ch12-mq.xml Sat Aug 15 15:15:39 2009 +0200 +++ b/it/ch12-mq.xml Sat Aug 15 17:22:37 2009 +0200 @@ -23,7 +23,7 @@ La preistoria di Mercurial Queues - Verso la fine degli anni '90, diversi sviluppatori del kernel di Linux cominciarono a mantenere alcune serie di patch che modificavano il comportamento del kernel. Alcune di queste serie si concentravano sulla stabilità, alcune sull'inclusione di funzionalità e altre erano più sperimentali. + Verso la fine degli anni '90, diversi sviluppatori del kernel di Linux cominciarono a mantenere alcune serie di patch che modificavano il comportamento del kernel. Alcune di queste serie si concentravano sulla stabilità, alcune sull'inclusione di funzioni e altre erano più sperimentali. La dimensione di queste serie di patch crebbe rapidamente. Nel 2002, Andrew Morton pubblicò alcuni script di shell che aveva usato per automatizzare la gestione delle proprie code di patch. Andrew era riuscito a usare questi script per gestire centinaia (talvolta migliaia) di patch per il kernel di Linux. @@ -196,7 +196,7 @@ &interaction.mq.tutorial.add; - Tutti i comandi che esaminano la directory di lavoro accettano un'opzione so cosa sto facendo che si chiama sempre . L'esatto significato di dipende dal comando. Per esempio, hg qnew incorporerà i cambiamenti in sospeso nella nuova patch creata, ma hg qpop annullerà le modifiche a qualsiasi file affetto dalla patch che sta estraendo. Assicuratevi di leggere la documentazione per l'opzione di un comando prima di usarla! + Tutti i comandi che esaminano la directory di lavoro accettano un'opzione so cosa sto facendo che si chiama sempre . L'esatto significato di dipende dal comando. Per esempio, hg qnew incorporerà i cambiamenti in sospeso nella nuova patch creata, ma hg qpop annullerà le modifiche a qualsiasi file coinvolto dalla patch che sta estraendo. Assicuratevi di leggere la documentazione per l'opzione di un comando prima di usarla! @@ -382,7 +382,7 @@ Il riferimento per indice non è molto diverso. La prima patch visualizzata da qseries è la patch numero zero (sì, è uno di quei sistemi di conteggio che partono da zero), la seconda è la patch numero uno, e così via. - MQ rende anche più facile lavorare con le patch usando i normali comandi Mercurial. Tutti i comandi che accettano un identificatore di changeset accettano anche il nome di una patch applicata. MQ aggiunge un'etichetta eponima per ogni patch applicata alle etichette normalmente presenti nel repository. In più, le etichette speciali qbase e qtip identificano rispettivamente la prima e l'ultima patch applicata. + MQ rende anche più facile lavorare con le patch usando i normali comandi Mercurial. Tutti i comandi che accettano un identificatore di changeset accettano anche il nome di una patch applicata. MQ aggiunge un'etichetta omonima per ogni patch applicata alle etichette normalmente presenti nel repository. In più, le etichette speciali qbase e qtip identificano rispettivamente la prima e l'ultima patch applicata. Queste aggiunte alla funzione di etichettatura di Mercurial facilitano ulteriormente l'uso delle patch. @@ -509,7 +509,7 @@ Combinare intere patch - MQ vi fornisce il comando qfold per consentirvi di combinare intere patch. Questo comando include le patch che nominate, nell'ordine in cui le nominate, nell'ultima patch applicata e concatena le loro descrizioni aggiungendole alla fine della descrizione di questa patch. Se le patch che includete sono applicate, devono essere estratte prima di poterle includere. + MQ vi fornisce il comando qfold per consentirvi di combinare intere patch tra loro. Questo comando include le patch che nominate, nell'ordine in cui le nominate, nell'ultima patch applicata e concatena le loro descrizioni aggiungendole alla fine della descrizione di questa patch. Se le patch che includete sono applicate, devono essere estratte prima di poterle includere. L'ordine in cui includete le patch è importante. Se la vostra ultima patch applicata è foo e voi utilizzate qfold per includervi bar e quux, otterrete una patch che opererà come se aveste applicato prima foo, poi bar, seguita da quux. @@ -517,7 +517,7 @@ Unire parte di una patch a un'altra - Unire parte di una patch a un'altra patch è più difficile che combinare intere patch. + Unire parte di una patch a un'altra patch è più difficile che combinare intere patch tra loro. Se volete spostare alcune modifiche su interi file, potete usare le opzioni e di filterdiff per scegliere le modifiche che desiderate ricavare da una patch, aggiungendo il risultato del comando in coda alla patch a cui unire i cambiamenti. Di solito non avrete bisogno di modificare la patch da cui prelevate le modifiche da unire. Piuttosto, MQ rifiuterà alcune parti della patch quando invocate qpush su di essa (a causa dei blocchi che avete spostato nell'altra patch) e voi potrete semplicemente aggiornare la patch tramite qrefresh per scartare i blocchi duplicati. diff -r 42e2c9d47ef4 -r 15eeeef467d2 it/ch14-hgext.xml --- a/it/ch14-hgext.xml Sat Aug 15 15:15:39 2009 +0200 +++ b/it/ch14-hgext.xml Sat Aug 15 17:22:37 2009 +0200 @@ -4,7 +4,7 @@ Se da una parte il nucleo di Mercurial è piuttosto completo dal punto di vista delle funzionalità, dall'altra è deliberatamente privo di caratteristiche ornamentali. Questo approccio orientato a preservare la semplicità mantiene il software facile da maneggiare sia per chi ne cura la manutenzione sia per chi lo usa. - Tuttavia, Mercurial non vi ingabbia in un insieme di comandi immutabile: potete aggiungere nuove funzioni a Mercurial sotto forma di estensioni (talvolta note come plugin). Abbiamo già discusso alcune di queste estensioni nei capitoli precedenti. + Tuttavia, Mercurial non vi vincola a usare un insieme di comandi immutabile: potete aggiungere nuove funzioni a Mercurial sotto forma di estensioni (talvolta note come plugin). Abbiamo già discusso alcune di queste estensioni nei capitoli precedenti. La parla dell'estensione fetch, che combina l'estrazione di nuovi cambiamenti e la loro unione con i cambiamenti locali in un singolo comando, fetch. @@ -41,7 +41,7 @@ L'estensione inotify è specifica per Linux. Dato che si interfaccia direttamente con il sottosistema inotify del kernel di Linux, non funziona su altri sistemi operativi. - L'estensione dovrebbe funzionare su qualsiasi distribuzione Linux rilasciata dopo i primi mesi del 2005. È probabile che le distribuzioni più vecchie includano un kernel a cui manca inotify, o una versione di glibc senza il necessario supporto di interfacciamento. + L'estensione dovrebbe funzionare su qualsiasi distribuzione Linux rilasciata dopo i primi mesi del 2005. È probabile che le distribuzioni più vecchie includano un kernel a cui manca inotify, o una versione di glibc senza il necessario supporto di interfaccia. Non tutti i file system sono adatti per essere usati con l'estensione inotify. I file system di rete come NFS sono fuori gioco, per esempio, in particolare se state eseguendo Mercurial su diversi sistemi che montano lo stesso file system di rete. Il sistema inotify del kernel non ha alcun modo di sapere quali cambiamenti sono avvenuti su un altro sistema. La maggior parte dei file system locali (e.g. ext3, XFS, ReiserFS) dovrebbe andare bene. @@ -92,7 +92,7 @@ Se preferite, potete avviare manualmente un demone di stato usando il comando inserve, che vi permette di controllare in maniera leggermente più accurata le modalità di esecuzione del demone. Naturalmente, questo comando sarà disponibile solo nel caso in cui l'estensione inotify sia abilitata. - Quando state usando l'estensione inotify, non dovreste notare nessuna differenza nel comportamento di Mercurial, con la sola eccezione dei comandi relativi allo stato, che vengono eseguiti molto più velocemente di quanto accadeva di solito. Dovreste specificatamente aspettarvi che i comandi non stampino messaggi differenti né restituiscano risultati differenti. Se una di queste situazioni si verifica, vi prego di segnalare il bug. + Quando state usando l'estensione inotify, non dovreste notare nessuna differenza nel comportamento di Mercurial, con la sola eccezione dei comandi relativi allo stato, che vengono eseguiti molto più velocemente di quanto accadeva di solito. Dovreste espressamente aspettarvi che i comandi non stampino messaggi differenti né restituiscano risultati differenti. Se una di queste situazioni si verifica, vi prego di segnalare il bug. @@ -134,12 +134,12 @@ Potrebbe essere scomodo ricordare le opzioni sia per il comando extdiff che per il visualizzatore di diff che volete usare, quindi l'estensione extdiff vi permette di definire nuovi comandi che invocheranno il vostro visualizzatore di diff con le opzioni giuste. - Tutto quello che dovete fare è modificare il vostro file ~/.hgrc aggiungendo una sezione chiamata extdiff dove potete definire molteplici comandi. Ecco come aggiungere un comando kdiff3. Una volta che lo avete definito, potete digitare hg kdiff3 e l'estensione extdiff lancerà kdiff3 per voi. + Tutto quello che dovete fare è modificare il vostro file ~/.hgrc aggiungendo una sezione chiamata extdiff dove potete definire vari comandi. Ecco come aggiungere un comando kdiff3. Una volta che lo avete definito, potete digitare hg kdiff3 e l'estensione extdiff lancerà kdiff3 per voi. [extdiff] cmd.kdiff3 = - Se lasciate vuota la parte destra della definizione, come qui sopra, l'estensione extdiff usa il nome del comando che avete definito come il nome del programma esterno da usare. Ma questi nomi non devono necessariamente essere uguali. Qui di seguito definiamo un comando chiamato hg wibble che invoca kdiff3. + Se lasciate vuota la parte destra della definizione, come qui sopra, l'estensione extdiff usa il nome del comando che avete definito come il nome del programma esterno da usare. Ma questi nomi non devono necessariamente essere uguali. Qui di seguito definiamo un comando chiamato hg pippo che invoca kdiff3. [extdiff] - cmd.wibble = kdiff3 +cmd.pippo = kdiff3 Potete anche specificare le opzioni predefinite con cui volete invocare il vostro programma di visualizzazione di diff. Il prefisso da usare è opts., seguito dal nome del comando a cui applicare le opzioni. Questo esempio definisce un comando hg vimdiff che esegue l'estensione DirDiff dell'editor vim. [extdiff] diff -r 42e2c9d47ef4 -r 15eeeef467d2 it/examples/ch04-resolve.export.it --- a/it/examples/ch04-resolve.export.it Sat Aug 15 15:15:39 2009 +0200 +++ b/it/examples/ch04-resolve.export.it Sat Aug 15 17:22:37 2009 +0200 @@ -1,4 +1,4 @@ -$ export HGMERGE=merge +$ export HGMERGE=false