hgbook

changeset 831:124179faec5f

Add bibliography.
author gpiancastelli
date Mon Aug 17 01:53:50 2009 +0200 (2009-08-17)
parents 52ed51334e01
children ea5ae4dd787b
files it/00book.xml it/Makefile it/bibliography.xml it/ch06-collab.xml it/ch10-hook.xml it/ch11-template.xml it/ch12-mq.xml it/ch13-mq-collab.xml
line diff
     1.1 --- a/it/00book.xml	Sun Aug 16 23:12:08 2009 +0200
     1.2 +++ b/it/00book.xml	Mon Aug 17 01:53:50 2009 +0200
     1.3 @@ -25,6 +25,7 @@
     1.4  <!ENTITY appB     SYSTEM "appB-mq-ref.xml">
     1.5  <!ENTITY appC     SYSTEM "appC-srcinstall.xml">
     1.6  <!ENTITY appD     SYSTEM "appD-license.xml">
     1.7 +<!ENTITY bib      SYSTEM "bibliography.xml">
     1.8  
     1.9  <!-- Include our standard shortcuts. -->
    1.10  
    1.11 @@ -117,4 +118,6 @@
    1.12    &appC;
    1.13    <!-- BEGIN appD -->
    1.14    &appD;
    1.15 +  <!-- BEGIN bib -->
    1.16 +  &bib;
    1.17  </book>
     2.1 --- a/it/Makefile	Sun Aug 16 23:12:08 2009 +0200
     2.2 +++ b/it/Makefile	Mon Aug 17 01:53:50 2009 +0200
     2.3 @@ -8,8 +8,9 @@
     2.4  
     2.5  xml-src-files := \
     2.6  	00book.xml \
     2.7 -	$(wildcard ch*.xml)
     2.8 -	#$(wildcard app*.xml)
     2.9 +	$(wildcard ch*.xml) \
    2.10 +	$(wildcard app*.xml) \
    2.11 +	bibliography.xml
    2.12  
    2.13  xsltproc-opts := --nonet --xinclude
    2.14  xmllint-opts := --noout --nonet --valid --path '$(dtd-url)'
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/it/bibliography.xml	Mon Aug 17 01:53:50 2009 +0200
     3.3 @@ -0,0 +1,53 @@
     3.4 +<bibliography id="bib">
     3.5 +<title>Bibliografia</title>
     3.6 +
     3.7 +<biblioentry id="bib:quilt" xreflabel="Quilt">
     3.8 +  <authorgroup>
     3.9 +    <author><firstname>Jean</firstname><surname>Delvare</surname></author>
    3.10 +    <author><firstname>Andreas</firstname><surname>Gruenbacher</surname></author>
    3.11 +    <author><firstname>Martin</firstname><surname>Quinson</surname></author>
    3.12 +  </authorgroup>
    3.13 +  <title>Patchwork quilt</title>
    3.14 +  <bibliomisc><uri>http://savannah.nongnu.org/projects/quilt</uri></bibliomisc>
    3.15 +</biblioentry>
    3.16 +<biblioentry id="bib:diffstat" xreflabel="Dickey">
    3.17 +  <author><firstname>Thomas</firstname><surname>Dickey</surname></author>
    3.18 +  <title><literal>diffstat</literal>&emdash;make a histogram of <literal>diff</literal> output</title>
    3.19 +  <bibliomisc><uri>http://dickey.his.com/diffstat/diffstat.html</uri></bibliomisc>
    3.20 +</biblioentry>
    3.21 +<biblioentry id="bib:mysql" xreflabel="MySQL-Python">
    3.22 +  <author><firstname>Andy</firstname><surname>Dustman</surname></author>
    3.23 +  <title>MySQL for Python</title>
    3.24 +  <bibliomisc><uri>http://sourceforge.net/projects/mysql-python</uri></bibliomisc>
    3.25 +</biblioentry>
    3.26 +<biblioentry id="bib:gru05" xreflabel="Gruebacher2005">
    3.27 +  <author><firstname>Andreas</firstname><surname>Gruenbacher</surname></author>
    3.28 +  <title>How to survive with many patches (introduction to quilt)</title>
    3.29 +  <bibliomisc><uri>http://www.suse.de/~agruen/quilt.pdf</uri></bibliomisc>
    3.30 +  <date>June 2005</date>
    3.31 +</biblioentry>
    3.32 +<biblioentry id="bib:mpatch" xreflabel="Mason">
    3.33 +  <author><firstname>Chris</firstname><surname>Mason</surname></author>
    3.34 +  <title><literal>mpatch</literal>&emdash;help solve patch rejects</title>
    3.35 +  <bibliomisc><uri>http://oss.oracle.com/~mason/mpatch/</uri></bibliomisc>
    3.36 +</biblioentry>
    3.37 +<biblioentry id="bib:cp" xreflabel="Python">
    3.38 +  <corpauthor>Python.org</corpauthor>
    3.39 +  <title><literal>ConfigParser</literal>&emdash;configuration file parser</title>
    3.40 +  <bibliomisc><uri>http://docs.python.org/lib/module-ConfigParser.html</uri></bibliomisc>
    3.41 +</biblioentry>
    3.42 +<biblioentry id="bib:gnu" xreflabel="GNU-Standard">
    3.43 +  <authorgroup>
    3.44 +    <author><firstname>Richard</firstname><surname>Stallman</surname></author>
    3.45 +    <corpauthor>GNU Project volunteers</corpauthor>
    3.46 +  </authorgroup>
    3.47 +  <title>Gnu coding standards&emdash;change logs</title>
    3.48 +  <bibliomisc><uri>http://www.gnu.org/prep/standards/html_node/Change-Logs.html</uri></bibliomisc>
    3.49 +</biblioentry>
    3.50 +<biblioentry id="bib:patchutils" xreflabel="Waugh">
    3.51 +  <author><firstname>Tim</firstname><surname>Waugh</surname></author>
    3.52 +  <title><literal>patchutils</literal>&emdash;programs that operate on patch files</title>
    3.53 +  <bibliomisc><uri>http://cyberelk.net/tim/patchutils/</uri></bibliomisc>
    3.54 +</biblioentry>
    3.55 +
    3.56 +</bibliography>
     4.1 --- a/it/ch06-collab.xml	Sun Aug 16 23:12:08 2009 +0200
     4.2 +++ b/it/ch06-collab.xml	Mon Aug 17 01:53:50 2009 +0200
     4.3 @@ -476,7 +476,7 @@
     4.4  
     4.5        <para id="x_4d7">Una volta effettuata questa configurazione di base, provando a visitare <literal>http://nomemacchina/~nomeutente/hgwebdir.cgi</literal> con il vostro browser, dovreste vedere una lista di repository vuota. Se ottenete una finestra bianca o un messaggio di errore, provate a ripercorrere la lista di possibili problemi già vista nella <xref linkend="sec:collab:wtf"/>.</para>
     4.6  
     4.7 -      <para id="x_4d8">Lo script <filename role="special">hgwebdir.cgi</filename> si basa su un file di configurazione esterno. Per default, cerca un file chiamato <filename role="special">hgweb.config</filename> nella stessa directory in cui si trova. Dovrete creare questo file e renderlo leggibile agli altri. Il formato di questo file è simile a quello di un file <quote>ini</quote> di Windows, riconoscibile dal modulo <literal>ConfigParser</literal> <citation>web:configparser</citation> di Python.</para>
     4.8 +      <para id="x_4d8">Lo script <filename role="special">hgwebdir.cgi</filename> si basa su un file di configurazione esterno. Per default, cerca un file chiamato <filename role="special">hgweb.config</filename> nella stessa directory in cui si trova. Dovrete creare questo file e renderlo leggibile agli altri. Il formato di questo file è simile a quello di un file <quote>ini</quote> di Windows, riconoscibile dal modulo <literal>ConfigParser</literal> <citation><xref linkend="bib:cp"/></citation> di Python.</para>
     4.9  
    4.10        <para id="x_4d9">Il modo più facile di configurare <filename role="special">hgwebdir.cgi</filename> è tramite una sezione chiamata <literal>collections</literal>. Questo pubblicherà automaticamente <emphasis>tutti</emphasis> i repository contenuti nelle directory che nominate. La sezione dovrebbe somigliare a questa:</para>
    4.11        <programlisting>[collections]
     5.1 --- a/it/ch10-hook.xml	Sun Aug 16 23:12:08 2009 +0200
     5.2 +++ b/it/ch10-hook.xml	Mon Aug 17 01:53:50 2009 +0200
     5.3 @@ -332,7 +332,7 @@
     5.4  
     5.5  	<para id="x_24f">A causa della natura specializzata dell'hook e dato che Bugzilla non è stato implementato con questo tipo di integrazioni in mente, configurare questo hook è un processo piuttosto complicato.</para>
     5.6  
     5.7 -	<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>web:mysql-python</citation>.
     5.8 +	<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>.
     5.9  	</para>
    5.10  
    5.11  	<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>.
     6.1 --- a/it/ch11-template.xml	Sun Aug 16 23:12:08 2009 +0200
     6.2 +++ b/it/ch11-template.xml	Mon Aug 17 01:53:50 2009 +0200
     6.3 @@ -17,7 +17,7 @@
     6.4  
     6.5      &interaction.template.simple.compact;
     6.6  
     6.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>web:changelog</citation>.</para>
     6.8 +    <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>
     6.9  
    6.10      &interaction.template.simple.changelog;
    6.11  
     7.1 --- a/it/ch12-mq.xml	Sun Aug 16 23:12:08 2009 +0200
     7.2 +++ b/it/ch12-mq.xml	Mon Aug 17 01:53:50 2009 +0200
     7.3 @@ -30,7 +30,7 @@
     7.4      <sect2 id="sec:mq:quilt">
     7.5        <title>Una <quote>coperta a scacchi</quote></title>
     7.6  
     7.7 -      <para id="x_3b5">All'inizio del 2003, Andreas Gruenbacher e Martin Quinson presero in prestito l'approccio degli script di Andrew e pubblicarono uno strumento chiamato <quote>patchwork quilt</quote> (letteralmente, coperta a scacchi) <citation>web:quilt</citation>, o semplicemente <quote>quilt</quote> (si veda <citation>gruenbacher:2005</citation> per un articolo che lo descrive). Dato che quilt sostanzialmente automatizzava la gestione delle patch, guadagnò rapidamente un grande seguito tra gli sviluppatori di software open source.</para>
     7.8 +      <para id="x_3b5">All'inizio del 2003, Andreas Gruenbacher e Martin Quinson presero in prestito l'approccio degli script di Andrew e pubblicarono uno strumento chiamato <quote>patchwork quilt</quote> (letteralmente, coperta a scacchi) <citation><xref linkend="bib:quilt"/></citation>, o semplicemente <quote>quilt</quote> (si veda <citation><xref linkend="bib:gru05"/></citation> per un articolo che lo descrive). Dato che quilt sostanzialmente automatizzava la gestione delle patch, guadagnò rapidamente un grande seguito tra gli sviluppatori di software open source.</para>
     7.9  
    7.10        <para id="x_3b6">Quilt gestisce una <emphasis>pila di patch</emphasis> per un albero di directory. Per cominciare a usarlo, dite a quilt di gestire un albero di directory e quali file volete che gestisca, in modo che memorizzi i nomi e il contenuto di quei file. Per correggere un bug, create una nuova patch (usando un singolo comando), modificate i file che dovete correggere, poi <quote>aggiornate</quote> la patch.</para>
    7.11  
    7.12 @@ -279,7 +279,7 @@
    7.13  
    7.14        <para id="x_3fb">Sfortunatamente, non esiste alcuna tecnica particolare per gestire i blocchi rifiutati. Molto spesso, dovrete esaminare il file <filename role="special">.rej</filename> e modificare il file di destinazione, applicando a mano i blocchi rifiutati.</para>
    7.15  
    7.16 -      <para id="x_3fd">Un programmatore del kernel di Linux, Chris Mason (l'autore di Mercurial Queues), ha realizzato uno strumento chiamato <command>mpatch</command> (<ulink url="http://oss.oracle.com/~mason/mpatch/">http://oss.oracle.com/~mason/mpatch/</ulink>), che adotta un metodo semplice per automatizzare l'applicazione dei blocchi rifiutati da <command>patch</command>. Il comando <command>mpatch</command> può aiutarvi nel caso il blocco sia stato rifiutato per quattro tipiche ragioni:</para>
    7.17 +      <para id="x_3fd">Un programmatore del kernel di Linux, Chris Mason (l'autore di Mercurial Queues), ha realizzato uno strumento chiamato <command>mpatch</command> <citation><xref linkend="bib:mpatch"/></citation>, che adotta un metodo semplice per automatizzare l'applicazione dei blocchi rifiutati da <command>patch</command>. Il comando <command>mpatch</command> può aiutarvi nel caso il blocco sia stato rifiutato per quattro tipiche ragioni:</para>
    7.18  
    7.19        <itemizedlist>
    7.20  	<listitem><para id="x_3fe">il contesto in mezzo a un blocco è cambiato;</para>
    7.21 @@ -460,11 +460,11 @@
    7.22  
    7.23      <para id="x_430">Una volta che avete lavorato con le patch per un po', vi troverete desiderosi di utilizzare strumenti che vi aiutino a capire e manipolare le patch di cui vi state occupando.</para>
    7.24  
    7.25 -    <para id="x_431">Il comando <command>diffstat</command> <citation>web:diffstat</citation> genera un istogramma delle modifiche effettuate a ogni file in una patch. Fornisce un buon modo per <quote>farsi un'idea</quote> di una patch&emdash;quali file coinvolge e quante modifiche introduce a ogni file e nell'insieme. (Trovo che sia una buona idea usare regolarmente l'opzione <option role="cmd-opt-diffstat">-p</option> di <command>diffstat</command>, poiché altrimenti il comando proverà a manipolare i prefissi dei nomi di file in un modo che almeno io trovo inevitabilmente confuso.)</para>
    7.26 +    <para id="x_431">Il comando <command>diffstat</command> <citation><xref linkend="bib:diffstat"/></citation> genera un istogramma delle modifiche effettuate a ogni file in una patch. Fornisce un buon modo per <quote>farsi un'idea</quote> di una patch&emdash;quali file coinvolge e quante modifiche introduce a ogni file e nell'insieme. (Trovo che sia una buona idea usare regolarmente l'opzione <option role="cmd-opt-diffstat">-p</option> di <command>diffstat</command>, poiché altrimenti il comando proverà a manipolare i prefissi dei nomi di file in un modo che almeno io trovo inevitabilmente confuso.)</para>
    7.27  
    7.28      &interaction.mq.tools.tools;
    7.29  
    7.30 -    <para id="x_432">Il pacchetto <literal role="package">patchutils</literal> <citation>web:patchutils</citation> è inestimabile. Fornisce un insieme di piccole utilità che seguono la <quote>filosofia Unix</quote>: ognuna effettua una singola operazione utile su una patch. Il comando di <literal role="package">patchutils</literal> che uso di più è <command>filterdiff</command>, che estrae sottoinsiemi di un file di patch. Per esempio, data una patch che modifica centinaia di file attraverso dozzine di directory, una singola invocazione di <command>filterdiff</command> può generare una patch più piccola che coinvolge solo i file il cui nome corrisponde a un particolare pattern di tipo glob. Leggete la <xref linkend="mq-collab:tips:interdiff"/> per un altro esempio.</para>
    7.31 +    <para id="x_432">Il pacchetto <literal role="package">patchutils</literal> <citation><xref linkend="bib:patchutils"/></citation> è inestimabile. Fornisce un insieme di piccole utilità che seguono la <quote>filosofia Unix</quote>: ognuna effettua una singola operazione utile su una patch. Il comando di <literal role="package">patchutils</literal> che uso di più è <command>filterdiff</command>, che estrae sottoinsiemi di un file di patch. Per esempio, data una patch che modifica centinaia di file attraverso dozzine di directory, una singola invocazione di <command>filterdiff</command> può generare una patch più piccola che coinvolge solo i file il cui nome corrisponde a un particolare pattern di tipo glob. Leggete la <xref linkend="mq-collab:tips:interdiff"/> per un altro esempio.</para>
    7.32  
    7.33    </sect1>
    7.34    <sect1>
     8.1 --- a/it/ch13-mq-collab.xml	Sun Aug 16 23:12:08 2009 +0200
     8.2 +++ b/it/ch13-mq-collab.xml	Mon Aug 17 01:53:50 2009 +0200
     8.3 @@ -212,7 +212,7 @@
     8.4  
     8.5        <para id="x_19a">Se sviluppate un insieme di patch per un lungo periodo, è una buona idea mantenerle in un repository, come discusso nella <xref linkend="sec:mq:repo"/>. Se fate in questo modo, scoprirete velocemente che è impraticabile usare il comando <command role="hg-cmd">hg diff</command> per esaminare la cronolgia dei cambiamenti di una patch. In parte, questo succede perché state osservando la derivata seconda del codice reale (un diff di un diff), ma anche perché MQ aggiunge rumore al processo modificando le marcature temporali e i nomi di directory quando aggiorna una patch.</para>
     8.6  
     8.7 -      <para id="x_19b">Tuttavia, potete usare l'estensione <literal role="hg-ext">extdiff</literal> inclusa in Mercurial per rendere leggibile il diff di due versioni di una patch. Per fare questo, avrete bisogno di un pacchetto di terze parti chiamato <literal role="package">patchutils</literal> <citation>web:patchutils</citation>. Il pacchetto fornisce un comando chiamato <command>interdiff</command> che mostra le differenze tra due diff di un diff. Usato su due versioni dello stesso diff, genera un diff che rappresenta le differenze tra la prima e la seconda versione.</para>
     8.8 +      <para id="x_19b">Tuttavia, potete usare l'estensione <literal role="hg-ext">extdiff</literal> inclusa in Mercurial per rendere leggibile il diff di due versioni di una patch. Per fare questo, avrete bisogno di un pacchetto di terze parti chiamato <literal role="package">patchutils</literal> <citation><xref linkend="bib:patchutils"/></citation>. Il pacchetto fornisce un comando chiamato <command>interdiff</command> che mostra le differenze tra due diff di un diff. Usato su due versioni dello stesso diff, genera un diff che rappresenta le differenze tra la prima e la seconda versione.</para>
     8.9  
    8.10        <para id="x_19c">Potete abilitare l'estensione <literal role="hg-ext">extdiff</literal> nel solito modo, aggiungendo una riga alla sezione <literal role="rc-extensions">extensions</literal> del vostro file <filename role="special">~/.hgrc</filename>.</para>
    8.11        <programlisting>[extensions]