[svnbook commit] r2403 - trunk/src/it/book
bpietro
noreply at red-bean.com
Tue Sep 5 11:57:45 CDT 2006
Author: bpietro
Date: Tue Sep 5 11:57:44 2006
New Revision: 2403
Modified:
trunk/src/it/book/appa.xml
trunk/src/it/book/appc.xml
trunk/src/it/book/ch01.xml
trunk/src/it/book/ch04.xml
trunk/src/it/book/copyright.xml
Log:
chap 04 all done - need proofread
Modified: trunk/src/it/book/appa.xml
==============================================================================
--- trunk/src/it/book/appa.xml (original)
+++ trunk/src/it/book/appa.xml Tue Sep 5 11:57:44 2006
@@ -57,7 +57,7 @@
<!-- ================================================================= -->
<sect1 id="svn.forcvs.directories">
<title>Directory Versions</title>
-
+
<para>Subversion tracks tree structures, not just file contents.
It's one of the biggest reasons Subversion was written to
replace CVS.</para>
@@ -100,7 +100,7 @@
that would be a lie too; there may be other changes to
<filename>foo</filename> we haven't yet received, because we
haven't updated yet.</para>
-
+
<para>Subversion deals with this problem by quietly tracking
committed adds and deletes in the <filename>.svn</filename>
area. When you eventually run <command>svn update</command>,
@@ -110,7 +110,7 @@
say that you have a <quote>perfect</quote> revision of a
directory.</emphasis> Most of the time, your working copy will
contain <quote>imperfect</quote> directory revisions.</para>
-
+
<para>Similarly, a problem arises if you attempt to commit
property changes on a directory. Normally, the commit would
bump the working directory's local revision number. But again,
@@ -142,9 +142,9 @@
directory, except that it also stores read-only,
<quote>pristine</quote> copies of your files. This allows you
to do many things off-line:</para>
-
+
<variablelist>
-
+
<varlistentry>
<term><command>svn status</command></term>
<listitem>
@@ -342,7 +342,7 @@
<warning>
- <para>Since Subversion treats branches and tags as ordinary
+ <para lang="en">Since Subversion treats branches and tags as ordinary
directories, always remember to check out the
<literal>trunk</literal>
(<literal>http://svn.example.com/repos/calc/trunk/</literal>)
@@ -354,6 +354,16 @@
have.<footnote><para>That is, providing you don't run out of
disk space before your checkout
finishes.</para></footnote></para>
+ <para>Perché in Subversion rami e targhe sono cartelle ordinarie,
+ ricordati sempre di tirar fuori (check out) il
+ <literal>tronco</literal>
+ (<literal>http://svn.example.com/repos/calc/trunk/</literal>)
+ del tuo progetto, e non progetto stesso
+ (<literal>http://svn.example.com/repos/calc/</literal>).
+ Se fai errore di tirar fuori intero progetto, finirai con
+ la copia di lavoro contenente oltre tronco anche ogni ramo e targa.
+ <footnote><para>Proprio così, ma solo se prima di finire checkout
+ non si esaurisce lo spazio sul tuo disco fisso.</para></footnote></para>
</warning>
</sect1>
@@ -370,7 +380,7 @@
directories. Properties are arbitrary name/value pairs
associated with files and directories in your working
copy.</para>
-
+
<para>To set or get a property name, use the <command>svn
propset</command> and <command>svn propget</command>
subcommands. To list all properties on an object, use
@@ -415,7 +425,7 @@
binary-differencing algorithm, regardless of whether they
contain textual or binary data. That means that all files are
stored differentially (compressed) in the repository.</para>
-
+
<para>CVS users have to mark binary files with
<option>-kb</option> flags, to prevent data from being garbled
(due to keyword expansion and line-ending translations). They
@@ -546,7 +556,7 @@
</appendix>
<!--
-local variables:
+local variables:
sgml-parent-document: ("book.xml" "appendix")
end:
-->
Modified: trunk/src/it/book/appc.xml
==============================================================================
--- trunk/src/it/book/appc.xml (original)
+++ trunk/src/it/book/appc.xml Tue Sep 5 11:57:44 2006
@@ -1,9 +1,10 @@
<appendix id="svn.3rdparty">
- <title>Third Party Tools</title>
+ <!-- <title>Third Party Tools</title> -->
+ <title>Strumenti dai terzi</title>
<simplesect>
- <para>Subversion's modular design (covered in <xref
+ <para lang="en">Subversion's modular design (covered in <xref
linkend="svn.developer.layerlib"/>) and the availability of
language bindings (as described in <xref
linkend="svn.developer.usingapi.otherlangs"/>) make it a likely
@@ -13,12 +14,22 @@
Subversion website (<ulink
url="http://subversion.tigris.org/project_links.html"/>).</para>
+ <para>Il design modulare di Subversion (coperto in <xref
+ linkend="svn.developer.layerlib"/>) e disponibilità di
+ binding per vari linguaggi di programmazione (come descritto in <xref
+ linkend="svn.developer.usingapi.otherlangs"/>) fanno di lui probabile
+ candidato per uso come una estensione o backend per altri programmi.
+ Per la lista di molti strumenti da terzi che usano le funzionalità di
+ Subversion dietro le quinte, controllate la pagina di likn sul sito web di
+ Subversion (<ulink
+ url="http://subversion.tigris.org/project_links.html"/>).</para>
+
</simplesect>
</appendix>
<!--
-local variables:
+local variables:
sgml-parent-document: ("book.xml" "appendix")
end:
-->
Modified: trunk/src/it/book/ch01.xml
==============================================================================
--- trunk/src/it/book/ch01.xml (original)
+++ trunk/src/it/book/ch01.xml Tue Sep 5 11:57:44 2006
@@ -20,14 +20,14 @@
per poi cancellare i cambiamenti il giorno seguente. Ma l'utilità
di un software di versionamento si estende ben fuori dai limiti
del mondo dello sviluppo software. Ovunque è possibile incontrare
- persone che utilizzano il computer per gestire informazioni che
+ persone che utilizzano il computer per gestire informazioni che
cambiano di frequente, lì trova spazio il controllo di versione.
E qui entra in gioco Subversion.</para>
<para lang="en">This chapter contains a high-level introduction to
Subversion—what it is; what it does; how to get it.</para>
- <para>Questo capitolo contiene un'introduzione di alto livello a
+ <para>Questo capitolo contiene un'introduzione di alto livello a
Subversion—cos'è; cosa fa; come ottenerlo.</para>
</simplesect>
@@ -39,7 +39,7 @@
<sect1 id="svn.intro.whatis">
<title>Cos'è Subversion?</title>
-
+
<para lang="en">Subversion is a free/open-source version control system.
That is, Subversion manages files and directories over time. A
tree of files is placed into a central
@@ -58,10 +58,10 @@
ad un file server, in più esso ricorda qualsiasi cambiamento
fatto ai files e alle directories. Ciò permette di ripristinare
vecchie versioni o esaminare lo storico dei cambiamenti dei dati.
- Per questo motivo, molte persone pensano che un sistema di
+ Per questo motivo, molte persone pensano che un sistema di
versionamento assomigli ad una sorta di <quote>macchina del
tempo</quote>.</para>
-
+
<para lang="en">Subversion can access its repository across networks, which
allows it to be used by people on different computers. At some
level, the ability for various people to modify and manage the
@@ -78,13 +78,19 @@
la possibilità per più persone di modificare e gestire lo
nebiac
la possibilità per più persone di modificare e maneggiare lo
- stesso elenco di dati, ognuno dalle rispettive postazioni,
+ stesso elenco di dati,
+[bpietro-
+ la possibilità per più persone di modificare e gestire lo
+ stesso insieme di dati]
+ ognuno dalle rispettive postazioni,
alimenta la collaborazione. Miglioramenti possono intervenire
più velocemente se non tutte le modifiche devono per forza
passare per un unico canale. E dato che il lavoro è sotto controllo,
- di versione non c'è da temere che la qualità sia il prezzo da
- pagare—se vengono applicate alla data alcune modifiche
- non corrette, basta annullare tali cambiamenti.</para>
+ di versione non c'è da temere che la qualità sia il prezzo da
+ pagare—se vengono applicate alla data
+[bpietro-
+ ai dati]
+ alcune modifiche non corrette, basta annullare tali cambiamenti.</para>
<para lang="en">Some version control systems are also software configuration
management (SCM) systems. These systems are specifically
@@ -99,20 +105,21 @@
beyond.</para>
<para>Alcuni sistemi per il controllo di versione sono anche
- sistemi 'software configuration management' (SCM). Questi
+ sistemi 'software configuration management' (SCM). Questi
nebiac
- sistemi di software configuration management (SCM). Questi
- sistemi sono orientati specificatamente alla gestione di
+ sistemi di software configuration management (SCM). Questi
+ sistemi sono orientati specificatamente alla gestione di
nebiac
- sistemi sono tagliati specificatamente alla gestione di
+ sistemi sono tagliati specificatamente alla gestione di
alberature di codice sorgente, e hanno molte caratteristiche
che sono specifiche allo sviluppo software—come
comprendere nativamente i linguaggi di programmazione o
integrare strumenti per la compilazione del software.
- Subversion, tuttavia, non è uno di questi sistemi. E' un
- sistema generale che può essere utilizzato per gestire
+ Subversion, tuttavia, non è uno di questi sistemi. E' un
+ sistema generale
+[bpietro- sistema generico] che può essere utilizzato per gestire
<emphasis>qualsiasi</emphasis> insieme di files. Per qualcuno
- questi files possono contenere codice sorgente—per
+ questi files possono contenere codice sorgente—per
altri qualunque cosa, dalla lista della spesa a montaggi video
digitali, e così via.</para>
@@ -147,7 +154,7 @@
<para>All'inizio del 2000, CollabNet,
Inc. (<ulink url="http://www.collab.net"/>) iniziò a cercare
- sviluppatori per scrivere un software che sostituisse CVS.
+ sviluppatori per scrivere un software che sostituisse CVS.
CollabNet offre una suite di software collaborativi chiamata
CollabNet Enterprise Edition (CEE)
<footnote>
@@ -155,18 +162,18 @@
Edition (CTE) pensata per gruppi più piccoli.</para>
</footnote>
di cui un componente è il controllo di versione. Sebbene
- CEE usasse proprio CVS come suo sistema di
+ CEE usasse proprio CVS come suo sistema di
versionamento iniziale, fin dall'inizio fu chiaro che tale software
nebiac (2 righe)
- CEE usasse proprio CVS come suo iniziale sistema di
+ CEE usasse proprio CVS come suo iniziale sistema di
versionamento, fin dall'inizio fu chiaro che tale software
- portava con se alcune limitazioni e CollabNet capì che
+ portava con se alcune limitazioni e CollabNet capì che
avrebbe dovuto trovare qualcosa di meglio.
- Sfortunatamente, CVS nel frattempo era ampiamente diventato
+ Sfortunatamente, CVS nel frattempo era ampiamente diventato
lo standard <foreignphrase>de facto</foreignphrase> nel
mondo dell'open source, poichè non c'è nulla di meglio, per
lo meno non sotto una licenza free. Così CollabNet decise di
- di scrivere da zero un nuovo sistema per il controllo di
+ di scrivere da zero un nuovo sistema per il controllo di
versione, mantenendo l'idea base di CVS, evitando i suoi bugs
e aggiungendo features.</para>
@@ -195,18 +202,18 @@
frustrating experiences with CVS, and welcomed the chance to
finally do something about it.</para>
- <para>Nel febbraio del 2000, fu contattato Karl Fogel, l'autore
+ <para>Nel febbraio del 2000, fu contattato Karl Fogel, l'autore
del libro <citetitle>Sviluppare Open Source con CVS</citetitle>
(Coriolis, 1999), al quale fu chiesto se avesse avuto piacere
- di lavorare su questo nuovo progetto. Coincidenza volle che,
+ di lavorare su questo nuovo progetto. Coincidenza volle che,
in quel periodo, Karl, stava già lavorando a un progetto per
un nuovo sistema di versionamento con il suo amico Jim Blandy.
- Nel 1995, i due avevano fondato la Cyclic Software, una
+ Nel 1995, i due avevano fondato la Cyclic Software, una
compagnia che si occupava di stipulare contratti di supporto
- all'utilizzo di CVS, e sebbene più tardi essi cedettero la
- loro attività, continuarono ancora ad utilizzare, per lavoro,
+ all'utilizzo di CVS, e sebbene più tardi essi cedettero la
+ loro attività, continuarono ancora ad utilizzare, per lavoro,
CVS ogni giorno. La loro frustrazione con CVS, condusse Jim a
- pensare seriamente ad un modo migliore per gestire dati
+ pensare seriamente ad un modo migliore per gestire dati
versionati; egli aveva già non solo ideato il nome
<quote>Subversion</quote>, ma anche la concezione base del
repository. Quando CollabNet li contattò, Karl accettò
@@ -215,13 +222,13 @@
potersi dedicare al progetto a tempo indeterminato. CollabNet assunse
Karl e Ben Collins-Sussman e il lavoro vero e proprio sul
progetto inizio nel mese di maggio. Con l'aiuto di alcuni
- ben piazzati sostenitori, da Brian Behlendorf e Jason Robbins
+ ben piazzati sostenitori, da Brian Behlendorf e Jason Robbins
of CollabNet, a Greg Stein (al tempo sviluppatore indipendente
attivo nel processo di specifica di WebDAV/DeltaV), Subversion
in breve tempo attrasse intorno a se una gruppo di attivi
- sviluppatori. Ciò dimostrava che molte persone avevano le
- stesse frustranti esperienze con CVS, e accolsero con
- entusiasmo la possibilità di fare finalmente qualcosa per
+ sviluppatori. Ciò dimostrava che molte persone avevano le
+ stesse frustranti esperienze con CVS, e accolsero con
+ entusiasmo la possibilità di fare finalmente qualcosa per
migliorarlo.</para>
<para lang="en">The original design team settled on some simple goals. They
@@ -233,7 +240,7 @@
similar enough that any CVS user could make the switch with
little effort.</para>
- <para>Il team di sviluppo originario si concentrò su alcuni
+ <para>Il team di sviluppo originario si concentrò su alcuni
semplici obiettivi. Essi non volevano introdurre un nuovo
approccio nella metodologia del controllo di versione, essi
volevano solamente migliorare CVS. Decisero che Subversion
@@ -242,7 +249,7 @@
sue più ovvie debolezze. E sebbene il loro software non avesse
bisogno di presentarsi come una copia di CVS, sarebbe comunque
dovuto essere abbastanza simile per permettere che qualsiasi
- utente di CVS, potesse cambiare e utilizzare Subversion con
+ utente di CVS, potesse cambiare e utilizzare Subversion con
pochissima fatica.</para>
<para lang="en">After fourteen months of coding, Subversion became
@@ -250,14 +257,14 @@
Subversion developers stopped using CVS to manage Subversion's
own source code, and started using Subversion instead.</para>
- <para>Dopo quattordici mesi passati a scrivere codice,
+ <para>Dopo quattordici mesi passati a scrivere codice,
Subversion divenne <quote>autogestente (self-hosted)</quote> il 31 agosto 2001.
nebiac
Subversion divenne <quote>self-hosted</quote> il 31 agosto 2001.
- Da quel momento, cioè, gli sviluppatori smisero di utilizzare
- CVS per gestire il codice di Subversion e iniziarono ad
+ Da quel momento, cioè, gli sviluppatori smisero di utilizzare
+ CVS per gestire il codice di Subversion e iniziarono ad
utilizzare Subversion stesso.</para>
-
+
<para lang="en">While CollabNet started the project, and still funds a large
chunk of the work (it pays the salaries of a few full-time
Subversion developers), Subversion is run like most open-source
@@ -270,15 +277,15 @@
<para>Mentre CollabNet iniziava il progetto e tuttora finanzia la
maggior parte del lavoro (paga lo stipendio di un piccolo gruppo
- di sviluppatori che lavorano su Subversion a tempo pieno), Subversion
- viene portato avanti come la maggior parte dei progetti open-source,
- gestito attraverso un insieme di regole aperto e trasparente che
+ di sviluppatori che lavorano su Subversion a tempo pieno), Subversion
+ viene portato avanti come la maggior parte dei progetti open-source,
+ gestito attraverso un insieme di regole aperto e trasparente che
nebiac
- gestito attraverso un aperto e trasparente insieme di regole che
+ gestito attraverso un aperto e trasparente insieme di regole che
incoraggiano la meritocrazia. La licenza di copyright di CollabNet
rispetta pienamente le linee guida Debian Free Software. In altre
- parole, chiunque è libero di scaricare, modificare e redistribuire
- Subversion come preferisce; senza richiedere alcun permesso da
+ parole, chiunque è libero di scaricare, modificare e redistribuire
+ Subversion come preferisce; senza richiedere alcun permesso da
CollabNet o chiunque altro.</para>
</sect1>
@@ -299,13 +306,13 @@
linkend="svn.basic"/>, in which we provide a gentle introduction
to version control in general.</para>
- <para>Discutere delle caratteristiche che Subversion porta
+ <para>Discutere delle caratteristiche che Subversion porta
al tavolo del controllo di versione, è spesso utile approfondire
in che modo tali peculiarità apportino miglioramenti alla struttura
- di CVS. Se non si ha familiarità con CVS, si rischia di non
- comprenderne a dovere l'efficacia. Se, poi, il lettore non ha
+ di CVS. Se non si ha familiarità con CVS, si rischia di non
+ comprenderne a dovere l'efficacia. Se, poi, il lettore non ha
dimestichezza con il controllo di versione in generale, i suoi occhi
- potrebbero coprirsi di una patina a meno che non si legga prima
+ potrebbero coprirsi di una patina a meno che non si legga prima
<xref linkend="svn.basic"/>, nel quale viene fornita una precisa
introduzione al generale concetto di versionamento.</para>
@@ -323,7 +330,7 @@
versioned.</para>
<para>Solo CVS traccia la storia dei soli files, mentre
- Subversion implementa il versionamento di un filesystem
+ Subversion implementa il versionamento di un filesystem
<quote>virtuale</quote> che traccia i cambiamenti nel tempo
degli interi alberi directory. I files <emphasis>e</emphasis> le
directories vengono quindi versionati.</para>
@@ -344,9 +351,9 @@
delete, copy, and rename both files and directories. And
every newly added file begins with a fresh, clean
history all its own.</para>
-
- <para>Dal momento che CVS è limitato al versionamento dei
- soli files, operazioni come copia e rinomina—che
+
+ <para>Dal momento che CVS è limitato al versionamento dei
+ soli files, operazioni come copia e rinomina—che
dovrebbero essere propri dei files, ma che poi non sono
altro che modifiche ai contenuti di ciò che contiene una
directory—non sono supportate in CVS.
@@ -369,17 +376,17 @@
chunks, and prevents problems that can occur when only a
portion of a set of changes is successfully sent to the
repository.</para>
-
- <para>Un insieme di modifiche o vengono inserite nel repository
- tutte insieme o non ne viene inserita nessuna. Ciò permette agli
- sviluppatori di costruire ed effettuare commit di cambiamenti come
+
+ <para>Un insieme di modifiche o vengono inserite nel repository
+ tutte insieme o non ne viene inserita nessuna. Ciò permette agli
+ sviluppatori di costruire ed effettuare commit di cambiamenti come
nebiac
- sviluppatori di costruire e committare i cambiamenti come
- un blocco logico unico, prevenendo problemi che possono
- occorrere quando solo una parte d'un insieme di modifiche
+ sviluppatori di costruire e committare i cambiamenti come
+ un blocco logico unico, prevenendo problemi che possono
+ occorrere quando solo una parte d'un insieme di modifiche
nebiac
- occorrere quando solo una parte di un set di modifiche
- vengono inviate con successo al repository.</para>
+ occorrere quando solo una parte di un set di modifiche
+ vengono inviate con successo al repository.</para>
</listitem>
</varlistentry>
@@ -392,13 +399,13 @@
pairs you wish. Properties are versioned over time, just
like file contents.</para>
- <para>
- Ogni file e directory ha un set di proprietà—chiavi
- e rispettivi valori—associati ad esso. L'utilizzatore
- può creare e memorizzare qualsiasi coppia di chiave/valore
- che preferisce, arbitrariamente. Le proprietà sono
- soggette a versionamento esattamente come il file a cui sono
- associate.</para>
+ <para>
+ Ogni file e directory ha un set di proprietà—chiavi
+ e rispettivi valori—associati ad esso. L'utilizzatore
+ può creare e memorizzare qualsiasi coppia di chiave/valore
+ che preferisce, arbitrariamente. Le proprietà sono
+ soggette a versionamento esattamente come il file a cui sono
+ associate.</para>
</listitem>
</varlistentry>
@@ -417,18 +424,18 @@
speaks a custom protocol which can be easily tunneled over
SSH.</para>
- <para>Subversion ha una nozione astratta di accesso al
- repository, che rende semplice per chiunque implementare
- nuovi meccanismi di rete. Inoltre è possibile
- integrarlo con Apache HTTP Server, come modulo di
- estensione. Ciò conferisce a Subversion un grande
- vantaggio in stabilità e interoperabilità, oltrechè un
- accesso istantaneo alle caratteristiche che tale webserver
- mette a disposizione—autenticazione, autorizzazione,
- wire compression, e così via. E' tuttavia disponibile
+ <para>Subversion ha una nozione astratta di accesso al
+ repository, che rende semplice per chiunque implementare
+ nuovi meccanismi di rete. Inoltre è possibile
+ integrarlo con Apache HTTP Server, come modulo di
+ estensione. Ciò conferisce a Subversion un grande
+ vantaggio in stabilità e interoperabilità, oltrechè un
+ accesso istantaneo alle caratteristiche che tale webserver
+ mette a disposizione—autenticazione, autorizzazione,
+ wire compression, e così via. E' tuttavia disponibile
anche un processo server standalone proprio di Subversion
- più leggero. Questo server è progettato su un protocollo
- proprio che può essere facilmente veicolato su SSH.</para>
+ più leggero. Questo server è progettato su un protocollo
+ proprio che può essere facilmente veicolato su SSH.</para>
</listitem>
</varlistentry>
@@ -443,13 +450,13 @@
repository, and differences are transmitted in both
directions across the network.</para>
- <para>Subversion esprime le differenze di un file usando
- un algoritmo di differenziazione binario, che lavora
- ugualmente sia sui files di testo (leggibili dall'uomo)
- che sui files binari (illeggibili dall'uomo). Entrambi
- i tipi di files sono memorizzati ugualmente compressi
- nel repository e le differenze sono trasmesse in
- entrambi i casi attraverso la rete.</para>
+ <para>Subversion esprime le differenze di un file usando
+ un algoritmo di differenziazione binario, che lavora
+ ugualmente sia sui files di testo (leggibili dall'uomo)
+ che sui files binari (illeggibili dall'uomo). Entrambi
+ i tipi di files sono memorizzati ugualmente compressi
+ nel repository e le differenze sono trasmesse in
+ entrambi i casi attraverso la rete.</para>
</listitem>
</varlistentry>
@@ -463,21 +470,21 @@
take only a very small, constant amount of time.
</para>
- <para>Il costo in termini di tempo e spazio dedicato al
+ <para>Il costo in termini di tempo e spazio dedicato al
nebiac: direi di non mettere le doppie virgolette, cosa dici?
- Il "costo" in termini di tempo e spazio dedicato al
- branching e al tagging non deve essere proporzionale
- alla grandezza del progetto. Subversion crea branches e
- tags utilizzando un meccanismo simile all'hard-link unix
- (collegamento) per copiare il progetto. In questo modo,
- tali operazioni occupano solo una quantità di tempo
- molto piccolo e costante.
+ Il "costo" in termini di tempo e spazio dedicato al
+ branching e al tagging non deve essere proporzionale
+ alla grandezza del progetto. Subversion crea branches e
+ tags utilizzando un meccanismo simile all'hard-link unix
+ (collegamento) per copiare il progetto. In questo modo,
+ tali operazioni occupano solo una quantità di tempo
+ molto piccolo e costante.
nebiac
- molto breve e costante.
- </para>
+ molto breve e costante.
+ </para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term>Versatilità</term>
<listitem>
@@ -487,11 +494,11 @@
maintainable and usable by other applications and
languages.</para>
- <para>Subversion non ha alcun bagaglio storico; esso è
- implementato come una collezione di librerie C condivise
- con delle APIs ben definite. Ciò lo rende estremamente
- manutenibile e usabile da altre applicazioni e in
- altre lingue.</para>
+ <para>Subversion non ha alcun bagaglio storico; esso è
+ implementato come una collezione di librerie C condivise
+ con delle APIs ben definite. Ciò lo rende estremamente
+ manutenibile e usabile da altre applicazioni e in
+ altre lingue.</para>
</listitem>
</varlistentry>
@@ -508,7 +515,7 @@
<para><xref linkend="svn.intro.architecture.dia-1"/> illustra ciò che si può chiamare
una vista <quote>dall'altezza di un miglio</quote> dell'architettura di Subversion.</para>
-
+
<figure id="svn.intro.architecture.dia-1">
<title>Architettura di Subversion</title>
<graphic fileref="images/ch01dia1.png"/>
@@ -525,15 +532,15 @@
repository. Others bypass the network altogether and access the
repository directly.
</para>
-
+
<para>
- Ad un estremo c'è il repository Subversion che contiene tutti i vostri dati
- sotto controllo di versione. All'altro estremo c'è il vostro client Subversion,
- che gestisce le specchiature locali di parte dei dati sotto controllo
- di versione (chiamate <quote>copie locali</quote>).
- Tra questi estremi vi sono diversi percorsi tramite vari strati per l'Accesso al Repository
- (AR). Alcune di queste strade attraversano reti di computer e reti di server che che a loro volta
- accedono il repository.
+ Ad un estremo c'è il repository Subversion che contiene tutti i vostri dati
+ sotto controllo di versione. All'altro estremo c'è il vostro client Subversion,
+ che gestisce le specchiature locali di parte dei dati sotto controllo
+ di versione (chiamate <quote>copie locali</quote>).
+ Tra questi estremi vi sono diversi percorsi tramite vari strati per l'Accesso al Repository
+ (AR). Alcune di queste strade attraversano reti di computer e reti di server che che a loro volta
+ accedono il repository.
Altre scavalcano del tutto la rete ed accedono direttamente il repository.
</para>
@@ -560,14 +567,14 @@
the Apache httpd server runs on: Windows, Linux, all flavors of
BSD, Mac OS X, Netware, and others.
</para>
-
+
<para>
Subversion è costruito su uno strato portabile chiamato APR—
la libreria Apache Portable Runtime. La libreria APR fornisce tutte le interfaccie
- per le funzioni richieste da Subversion per funzionare su diversi sistemi operativi:
+ per le funzioni richieste da Subversion per funzionare su diversi sistemi operativi:
l'accesso al disco, alla rete, la gestione della memoria e così via.
- Anche se Subversion è in grado di utilizzare Apache come uno dei possibili componenti lato server,
- la sua dipendenza da APR <emphasis>non</emphasis> significa che Apache sia un
+ Anche se Subversion è in grado di utilizzare Apache come uno dei possibili componenti lato server,
+ la sua dipendenza da APR <emphasis>non</emphasis> significa che Apache sia un
componente rihiesto per funzionare. Significa, comunque, che come Apache, i client
ed i server di Subversion funzionano su ogni sistema operativo sul quale gira il server httpd Apache:
Windows, Linux, tutte le varianti di BSD, MAc OS X, Netware ed altri.
@@ -595,7 +602,7 @@
Se siete utenti di un sistema operativo di tipo Unix, per ottenere Subversion potete utilizzare
i sistemi di distribuzione nativi per il vostro sistema (RPMs. DEBs, ports tree, etc.).
</para>
-
+
<para lang="en">
Alternately, you can build Subversion directly from source
code. From the Subversion website, download the latest
@@ -615,19 +622,19 @@
</para>
<para>
- Come alternativa, si può costruire Subversion direttamente dai codici sorgenti.
- Scaricate l'ultima release del codice sorgente dal sito web di Subversion.
- Dopo averlo spacchettato, seguite le istruzioni contenute nel file
- <filename>INSTALL</filename> per costruirlo.
- Da notare che un pacchetto di sorgenti rilasciato, contiene tutto ciò di
- cui si necessiti per costruire un client a linea di comando in grado di parlare con
- un repository remoto (in particolare, apr, apr-util, e le librerie neon).
- Ma parti opzionali di Subversion hanno molte altre dipendenze, come il DB Berkeley ed anche
- Apace httpd.
- Se volete realizzare una costruzione completa, siate sicuri di avere tutti i pacchetti
- descritti nel file <filename>INSTALL</filename>.
- Se avete intenzione di lavorare su Subversion stesso, potete utilizzare il client
- per ottenere l'ultima copia dei sorgenti allineata con la frontiera degli sviluppi.
+ Come alternativa, si può costruire Subversion direttamente dai codici sorgenti.
+ Scaricate l'ultima release del codice sorgente dal sito web di Subversion.
+ Dopo averlo spacchettato, seguite le istruzioni contenute nel file
+ <filename>INSTALL</filename> per costruirlo.
+ Da notare che un pacchetto di sorgenti rilasciato, contiene tutto ciò di
+ cui si necessiti per costruire un client a linea di comando in grado di parlare con
+ un repository remoto (in particolare, apr, apr-util, e le librerie neon).
+ Ma parti opzionali di Subversion hanno molte altre dipendenze, come il DB Berkeley ed anche
+ Apace httpd.
+ Se volete realizzare una costruzione completa, siate sicuri di avere tutti i pacchetti
+ descritti nel file <filename>INSTALL</filename>.
+ Se avete intenzione di lavorare su Subversion stesso, potete utilizzare il client
+ per ottenere l'ultima copia dei sorgenti allineata con la frontiera degli sviluppi.
Ciò è documentato in <xref
linkend="svn.developer.contrib.get-code"/>.
</para>
@@ -640,8 +647,8 @@
<sect1 id="svn.intro.components">
<title>I Componenti di Subversion</title>
-
- <para lang="en">
+
+ <para lang="en">
Subversion, once installed, has a number of different
pieces. The following is a quick overview of what you get.
Don't be alarmed if the brief descriptions leave you scratching
@@ -649,11 +656,11 @@
in this book devoted to alleviating that confusion.
</para>
- <para lang="en">
+ <para lang="en">
Subversion, una volta installato, possiede un certo numero di differenti
pezzi. Segue un veloce riferimento al riguardo.
Non allarmatevi se le brevi descrizioni vi lasciano dei grattacapi—
- in questo libro ci sono <emphasis>molte</emphasis> altre pagine
+ in questo libro ci sono <emphasis>molte</emphasis> altre pagine
dedicate ad alleviare la vostra confusione.
</para>
@@ -672,8 +679,8 @@
<listitem>
<para lang="en">A program for reporting the state (in terms of
revisions of the items present) of a working copy.</para>
-
- <para>Un programma per conoscere lo stato (in termini di
+
+ <para>Un programma per conoscere lo stato (in termini di
revisione degli elementi presenti) di una copia di lavoro.</para>
</listitem>
</varlistentry>
@@ -682,7 +689,7 @@
<term>svnlook</term>
<listitem>
<para lang="en">A tool for inspecting a Subversion repository.</para>
-
+
<para>Un tool per ispezionare una repository Subversion.</para>
</listitem>
</varlistentry>
@@ -691,7 +698,7 @@
<term>svnadmin</term>
<listitem>
<para lang="en">A tool for creating, tweaking or repairing a Subversion </para>
-
+
<para>Un tool per creare, operare e riparare una repository Subversion.</para>
</listitem>
</varlistentry>
@@ -711,8 +718,8 @@
<para lang="en">A plug-in module for the Apache HTTP Server, used to
make your repository available to others over a
network.</para>
-
- <para>Un modulo plug-in per il Server Apache HTTP, usato per rendere disponibile ad altri la
+
+ <para>Un modulo plug-in per il Server Apache HTTP, usato per rendere disponibile ad altri la
vostra repository via rete.</para>
</listitem>
</varlistentry>
@@ -724,7 +731,7 @@
daemon process or invokable by SSH; another way to make
your repository available to others over a network.</para>
- <para >Un programma server specializzato per essere eseguito come un processo demone
+ <para >Un programma server specializzato per essere eseguito come un processo demone
oppure essere invocato tramite SSH; un altro modo per rendere accessibile via rete
ad altri il vostro repository.</para>
</listitem>
@@ -733,9 +740,9 @@
<para lang="en">Assuming you have Subversion installed correctly, you should
be ready to start. The next two chapters will walk you through
- the use of <command>svn</command>, Subversion's command-line client
+ the use of <command>svn</command>, Subversion's command-line client
program.</para>
-
+
<para>Assumendo di avere Subversion correttamente installato, dovreste essere pronti a partire.
I prossimi due capitoli vi condurranno attraverso l'uso di <command>svn</command> il client command line
di Subversion.
@@ -749,7 +756,7 @@
<sect1 id="svn.intro.quickstart">
<title>Un rapido inizio</title>
-
+
<para lang="en">Some people have trouble absorbing a new technology by
reading the sort of <quote>top down</quote> approach provided by
this book. This section is a very short introduction to
@@ -759,13 +766,13 @@
running. Along the way, we give links to the relevant chapters
of this book.</para>
- <para>Alcune persone hanno dei problemi ad assorbire una nuova tecnologia
- tramite l'approccio <quote>top down</quote> di questo libro.
- Questa sezione è un'introduzione a Subversion molto sintetica, ed è pensata per
- fornire una possibilità in più a chi è abituato ad imparare con un approccio <quote>bottom up</quote>.
- Se si preferisce imparare sperimentando, gli esempi seguenti vi permetteranno di essere
- subito operativi.
- Strada facendo, saranno evidenziati i collegamenti ai capitoli più importanti di questo libro.
+ <para>Alcune persone hanno dei problemi ad assorbire una nuova tecnologia
+ tramite l'approccio <quote>top down</quote> di questo libro.
+ Questa sezione è un'introduzione a Subversion molto sintetica, ed è pensata per
+ fornire una possibilità in più a chi è abituato ad imparare con un approccio <quote>bottom up</quote>.
+ Se si preferisce imparare sperimentando, gli esempi seguenti vi permetteranno di essere
+ subito operativi.
+ Strada facendo, saranno evidenziati i collegamenti ai capitoli più importanti di questo libro.
</para>
@@ -775,7 +782,7 @@
before going any further.</para>
<para>Se per voi sono nuovi sia l'insieme dei concetti di controllo di versione, sia il modello
- <quote>copia-modifica-fusione (copy-modify-merge)</quote> usato sia da CVS che da Subversion,
+ <quote>copia-modifica-fusione (copy-modify-merge)</quote> usato sia da CVS che da Subversion,
allora dovreste leggere <xref linkend="svn.basic"/>
prima di andare avanti.</para>
@@ -788,7 +795,7 @@
later (run <command>svn --version</command> to check.)</para>
<para>Il seguente esempio assume di avere pronti all'uso <command>svn</command>, il client a linea di comando di Subversion,
- e <command>svnadmin</command>, il tool di amministrazione.
+ e <command>svnadmin</command>, il tool di amministrazione.
Si assume anche che stiate usando Subversion 1.2 o successivo
(usare il comando <command>svn --version</command> per controllare.)</para>
</note>
@@ -796,7 +803,7 @@
<para lang="en">Subversion stores all versioned data in a central
repository. To begin, create a new repository:</para>
- <para>Subversion memorizza tutti i dati sotto controllo di versione in un repository centrale.
+ <para>Subversion memorizza tutti i dati sotto controllo di versione in un repository centrale.
Per iniziare, creiamo un nuovo repoitory:</para>
<screen>
@@ -835,7 +842,7 @@
ever talking about some directory (or collection of directories)
in the repository.</para>
- <para>Subversion non ha il concetto di <quote>progetto</quote>.
+ <para>Subversion non ha il concetto di <quote>progetto</quote>.
Il repository è solo un filesystem virtuale versionato, un albero di directory molto vasto
che può conservare ciò che si desidera. Alcuni sistemisti preferiscono memorizzare
solo un progetto per repository alti memorizzano più progetti in un repository
@@ -843,12 +850,12 @@
I pregi di ogni approcci sono discussi in <xref linkend="svn.reposadmin.projects.chooselayout"/>.
Ad ogni modo il repository gestisce solo file e directory,
in tal senso è copito degli umani interpretare le particolari directory,
- come <quote>projects</quote>.
+ come <quote>projects</quote>.
Per questo ogni qual volta in questo libro venga fatto riferimento ai progetti,
si tenga presente che è come se si parlasse di directory (od insiemi di directories) nel
repository.</para>
-
+
<para lang="en"> In this example, we assume that you already have some sort
of project (a collection of files and directories) that you wish
to import into your newly created Subversion repository. Begin
@@ -867,9 +874,9 @@
<para> In questo esempio, si assume di avere una qualche sorta di progetto
(un insieme di files e directories) che vorreste importare in un repository
appena creato.
- Iniziamo organizzandoli in una sola directory chiamata <filename>myproject</filename>
+ Iniziamo organizzandoli in una sola directory chiamata <filename>myproject</filename>
(oppure un qualunque altro nome vi piaccia).
- Per ragioni che saranno chiare tra poco (vedi <xref linkend="svn.branchmerge"/>),
+ Per ragioni che saranno chiare tra poco (vedi <xref linkend="svn.branchmerge"/>),
l'alberatura del vostro progetto dovrà contenere tre directory di livello piu' alto
chiamate <filename>branches</filename>,
<filename>tags</filename>, and
@@ -903,7 +910,7 @@
(see <xref linkend="svn.tour.other.import"/>):</para>
<para>Non appena la vostra struttura di directory è pronta, importatela in una
- repository svn con il comando <command>svn import</command>
+ repository svn con il comando <command>svn import</command>
(see <xref linkend="svn.tour.other.import"/>):</para>
<screen>
$ svn import /tmp/myproject file:///path/to/repos/myproject -m "initial import"
@@ -915,7 +922,7 @@
Adding /tmp/myproject/trunk/Makefile
…
Committed revision 1.
-$
+$
</screen>
<para lang="en">Now the repository contains this tree of data. As mentioned
@@ -943,11 +950,11 @@
<para>Notare che la directory originaria <filename>/tmp/myproject</filename>
non e' cambiata; Subversion non lo sa. (Infatti, potete anche cancellare quella
directory se volete.) Per essere in grado di iniziare a manipolare i dati nel repository,
- avete bisogno di creare una nuova <quote>copia di lavoro (working copy)</quote> dei dati,
- una sorta di spazio di lavoro privato.
+ avete bisogno di creare una nuova <quote>copia di lavoro (working copy)</quote> dei dati,
+ una sorta di spazio di lavoro privato.
Domandate a Subversion di effettuare un <quote>check out</quote> della copia di lavoro
della directory <filename>myproject/trunk</filename> memorizzata nel repository:</para>
-
+
<screen>
$ svn checkout file:///path/to/repos/myproject/trunk myproject
@@ -964,7 +971,7 @@
back into the repository.</para>
<para>Ora avete una copia personale di parte del repository
- in una nuova directory chiamata <filename>myproject</filename>.
+ in una nuova directory chiamata <filename>myproject</filename>.
Potete modificare i files nella copia di lavoro e poi sottomettere a svn (commit)
i cambiamenti nel repository.</para>
@@ -994,7 +1001,7 @@
<para lang="en">For a full tour of all the things you can do with your
working copy, read <xref linkend="svn.tour"/>.</para>
- <para>Per un tour completo riguado tutte le cose che si possono fare con la copia locale,
+ <para>Per un tour completo riguado tutte le cose che si possono fare con la copia locale,
leggere <xref linkend="svn.tour"/>.</para>
<para lang="en">At this point, you have the option of making your repository
@@ -1003,7 +1010,7 @@
server processes available and how to configure them.</para>
<para> A questo punto, potete scegliere di rendere accessibile il vostro repository via rete.
- Consultare anche <xref linkend="svn.serverconfig"/> per imparare riguardo i diversi tipi di processi server disponibili
+ Consultare anche <xref linkend="svn.serverconfig"/> per imparare riguardo i diversi tipi di processi server disponibili
e come configurarli.</para>
</sect1>
@@ -1012,7 +1019,7 @@
</chapter>
<!--
-local variables:
+local variables:
sgml-parent-document: ("book.xml" "chapter")
end:
-->
Modified: trunk/src/it/book/ch04.xml
==============================================================================
--- trunk/src/it/book/ch04.xml (original)
+++ trunk/src/it/book/ch04.xml Tue Sep 5 11:57:44 2006
@@ -10,11 +10,11 @@
see how Subversion implements these ideas.</para>
<para>Ramificazioni, etichette e fusioni sono concetti comuni a
- quasi tutti sistemi di controllo di versione. Se non si conoscono
+ quasi tutti sistemi di controllo delle versioni. Se non si conoscono
abbastanza queste idee, forniamo noi la buona introduzione in
questo capitolo. Se le conoscete già, si spera che troverete interesante
di vedere come Subversion implementa queste idee.</para>
-
+
<para lang="en">Branching is a fundamental part of version control. If
you're going to allow Subversion to manage your data, then this
is a feature you'll eventually come to depend on. This chapter
@@ -26,7 +26,7 @@
dipenderete da questa caratteristica. In questo capitolo si assume
che siete già al corrente di concetti base di Subversion
(<xref linkend="svn.basic"/>).</para>
-
+
</simplesect>
<!-- ================================================================= -->
@@ -44,9 +44,9 @@
<para>Supponiamo che vostro compito è mantenere un certo documento per
un dipartimento della vostra società. Un giorno un altro dipartimento
chiede lo stesso documento, ma con alcune parti
- <quote>modificate</quote> per loro, perché in quel dipartimento alcune
- cose le fanno in modo legermente diverso.</para>
-
+ <quote>modificate</quote> per loro, perché in quel dipartimento le
+ cose fanno in modo legermente diverso.</para>
+
<para lang="en">What do you do in this situation? You do the obvious thing:
you make a second copy of your document, and begin maintaining
the two copies separately. As each department asks you to make
@@ -55,9 +55,9 @@
<para>Che cosa fatte in questa situazione? Una cosa ovvia:
fatte la seconda copia del vostro documento e cominciate mantenere
- queste due copie separatamente. Quando uno o altro dipartimento
+ le due copie separatamente. Quando uno o altro dipartimento
chede di fare modifiche, voi le fatte in una o altra copia.</para>
-
+
<para lang="en">You often want to make the same change to both copies. For
example, if you discover a typo in the first copy, it's very
likely that the same typo exists in the second copy. The two
@@ -69,7 +69,7 @@
molto probabilmente lo stesso errore è anche nell'altra. Dopo tutto,
le due copie sono quasi identiche, diferiscono solo nelle piccole,
specifiche parti.</para>
-
+
<para lang="en">This is the basic concept of a
<firstterm>branch</firstterm>—namely, a line of
development that exists independently of another line, yet still
@@ -83,7 +83,7 @@
sviluppo che esiste independemente dall'altra, anche se sempre
condividono la storia comune se si guarda abbastanza indietro in tempo.
Un ramo sempre comincia la sua vita come copia di qualcosa e
- muovendosi da questo punto genera la sua propria storia
+ prosegue da questo punto generando la sua propria storia
(vedi <xref linkend="svn.branchmerge.whatis.dia-1"/>).</para>
<figure id="svn.branchmerge.whatis.dia-1">
@@ -102,14 +102,14 @@
<para>Subversion ha i comandi per aiutarvi mantenere rami paralleli
di vostri file e cartelle. Vi permette di creare rami copiando i vostri dati
- e ricordare che le copie sono in relazione con altre. Vi aiuta anche
- di dupplicare cambiamenti da un ramo ad altro. Infine, vi permette
- di creare parti della vostra copia di lavoro che riflettono rami
- differenti così che potete <quote>mescolare e abbinare</quote>
- le linee differenti dello sviluppo nel vostro lavoro giornaliero.</para>
-
+ e si ricorda che le copie sono in relazione con altre. Vi aiuta anche
+ di dupplicare cambiamenti da un ramo ad altro. Infine, può
+ creare parti della vostra copia di lavoro che riflettono rami
+ diversi così che potete <quote>mescolare e abbinare</quote>
+ le linee diverse dello sviluppo nel vostro lavoro giornaliero.</para>
+
</sect1>
-
+
<!-- ================================================================= -->
<!-- ================================================================= -->
<!-- ================================================================= -->
@@ -124,8 +124,8 @@
<para>A questo punto dovete già capire come ogni commit crea
in deposito un albero di filesystem completamente nuovo (chiamato una
<quote>revisione</quote>). Se no, tornate dietro a leggere riguardo le
- revisioni in <xref linkend="svn.basic.in-action.revs"/>.</para>
-
+ revisioni <xref linkend="svn.basic.in-action.revs"/>.</para>
+
<para lang="en">For this chapter, we'll go back to the same example from
Chapter 2. Remember that you and your collaborator, Sally, are
sharing a repository that contains two projects,
@@ -134,7 +134,7 @@
project directory now contains subdirectories named
<filename>trunk</filename> and <filename>branches</filename>.
The reason for this will soon become clear.</para>
-
+
<para>Per questo capitolo torniamo allo stesso esempio del Capitolo 2.
Ricordate che voi e vostra collaboratrice, Sally, state condividere
un deposito che contiene due progetti,
@@ -143,10 +143,15 @@
ogni cartella di progetto adesso contiene sottocartelle denominate
<filename>trunk</filename> e <filename>branches</filename>.
La ragione di ciò diventa presto chiara.</para>
-
- <figure id="svn.branchmerge.using.dia-1">
+
+ <!-- <figure id="svn.branchmerge.using.dia-1">
<title>Starting repository layout</title>
<graphic fileref="images/ch04dia2.png"/>
+ </figure> -->
+
+ <figure id="svn.branchmerge.using.dia-1">
+ <title>Forma iniziale del deposito</title>
+ <graphic fileref="images/ch04dia2.png"/>
</figure>
<para lang="en">As before, assume that Sally and you both have working
@@ -160,12 +165,12 @@
<para>Come prima, assumiamo che tutti e due, Sally e voi, avete
copia di lavoro del progetto <quote>calc</quote>. Specificamente,
- entrambi avete copia di lavoro di <filename>/calc/trunk</filename>.
+ entrambi avete una copia di lavoro di <filename>/calc/trunk</filename>.
Tutti i file del progetto sono in questa sottocartella invece nella
cartella <filename>/calc</filename> stessa, perché vostro gruppo ha deciso
che <filename>/calc/trunk</filename> è il posto dove va posizionata la
<quote>linea principale</quote> dello sviluppo.</para>
-
+
<para lang="en">Let's say that you've been given the task of performing a
radical reorganization of the project. It will take a long time
to write, and will affect all the files in the project. The
@@ -179,11 +184,11 @@
<para>Diciamo che vi hanno dato lavoro di radicale riorganizazione del
progetto. Questo prende lungo tempo per scriverlo e toccherà tutti i file
nell progetto. Il problema è che voi non volete interferire con lavoro di
- Sally, che sta correggendo piccoli errori qua e là. Ella dipende sul fatto
+ Sally, che sta correggendo piccoli errori qua e là. Ella dipende dall fatto
che l'ultima versione del progetto (in <filename>/calc/trunk</filename>)
è sempre usabile. Se voi cominciate commit dei vostri cambiamenti
- pezzo-per-pezzo, sicuramente rompete le cose per Sally.</para>
-
+ pezzo-per-pezzo, sicuramente rompete le cose a Sally.</para>
+
<para lang="en">One strategy is to crawl into a hole: you and Sally can stop
sharing information for a week or two. That is, start gutting
and reorganizing all the files in your working copy, but don't
@@ -217,9 +222,9 @@
molto sicuro. A molte persone piace conservare suo lavoro
nel deposito frequentemente, nel caso che accidentalmente succede
qualcosa brutto alla loro copia di lavoro. Seconda, non è molto
- flessibile. Se state svolgendo vostro lavoro su differenti computer
+ flessibile. Se state svolgendo vostro lavoro su diversi computer
(magari avete le copie di lavoro del <filename>/calc/trunk</filename>
- su due macchine differenti), avete bisogno di copiare manualmente
+ su due macchine diverse), avete bisogno di copiare manualmente
i vostri cambiamenti avanti e dietro o fare il lavoro solo su un computer.
E per la stessa ragione, è difficile condividere i vostri cambiamenti-in-corso
con qualcun altro. <quote>Miglior attegiamento</quote> comune
@@ -229,11 +234,11 @@
Alla fine, quando avete finito con tutti i vostri cambiamenti,
potete magari trovare molto difficile di ri-fondere vostro lavoro finale
con il resto del corpo principale del codice della vostra società.
- Sally (o altri) poteva fare molti diversi cambiamenti nel deposito
- che sono difficili a incorporare nella vostra copia di
+ Sally (o altri) poteva fare molti altri cambiamenti nel deposito
+ che sono difficili da incorporare nella vostra copia di
lavoro—specialmente se fatte <command>svn update</command>
dopo settimane di isolamento.</para>
-
+
<para lang="en">The better solution is to create your own branch, or line of
development, in the repository. This allows you to save your
half-broken work frequently without interfering with others, yet
@@ -243,15 +248,15 @@
<para>La soluzione migliore è creare vostro ramo, o linea di
sviluppo, nel deposito. Questo vi permette di salvare vostro
- lavoro fatto-a-metà frequentemente senza interferire con altri,
+ lavoro fatto-a-metà[??incompiuto?] frequentemente senza interferire con altri,
ma nello stesso tempo selettivamente condividere le informazioni
con i vostri collaboratori. Vediamo in seguito esattamente come questo
approcio funziona.</para>
-
+
<!-- =============================================================== -->
<sect2 id="svn.branchmerge.using.create">
<title>Creare un ramo</title>
-
+
<para lang="en">Creating a branch is very simple—you make a copy of
the project in the repository using the <command>svn
copy</command> command. Subversion is not only able to copy
@@ -279,18 +284,18 @@
e voi volete chiamare vostro ramo <literal>my-calc-branch</literal>.
State per creare nuova cartella,
<filename>/calc/branches/my-calc-branch</filename>, che nasce come
- cop lang="en"ia di <filename>/calc/trunk</filename>.</para>
-
+ copia di <filename>/calc/trunk</filename>.</para>
+
<para lang="en">There are two different ways to make a copy. We'll
demonstrate the messy way first, just to make the concept
clear. To begin, check out a working copy of the project's
root directory, <filename>/calc</filename>:</para>
- <para>Ci sono due modi differenti di fare una copia. Vi dimostriamo
+ <para>Ci sono due modi diversi di fare una copia. Vi dimostriamo
prima quello ingarbugliato, solo per fare chiaro il concetto.
Per cominciare, tiriamo fuori una copia di lavoro della cartella
principale del progetto, <filename>/calc</filename>:</para>
-
+
<screen>
$ svn checkout http://svn.example.com/repos/calc bigwc
A bigwc/trunk/
@@ -307,7 +312,7 @@
<para>Creare una copia è adesso semplice ??matter? di passare due
percorsi di copia di lavoro al comando <command>svn copy</command>:</para>
-
+
<screen>
$ cd bigwc
$ svn copy trunk branches/my-calc-branch
@@ -333,16 +338,16 @@
<para>In questo caso, il comando <command>svn copy</command>
copia ricorsivamente cartella di lavoro <filename>trunk</filename>
nella nuova cartella di lavoro, <filename>branches/my-calc-branch</filename>.
- Come si può vedere dal comendo <command>svn status</command>,
+ Come si può vedere dal comando <command>svn status</command>,
la nuova cartella è adesso pianificata per essere aggiunta
al deposito. Notare anche che il segno <quote>+</quote> vicono la lettera
- A. Questo indica che la aggiunta pianificata è una <emphasis>copy</emphasis>
+ A. Questo indica che la aggiunta pianificata è una <emphasis>copia</emphasis>
di qualcosa, non qualcosa di nuovo. Quando fatte il commit degli vostri
cambiamenti, Subversion creerà
<filename>/calc/branches/my-calc-branch</filename> nel deposito
copiando <filename>/calc/trunk</filename>, invece di re-inviare tramite
la rete tutti i dati dalla cartella di lavoro:</para>
-
+
<screen>
$ svn commit -m "Creating a private branch of /calc/trunk."
Adding branches/my-calc-branch
@@ -354,9 +359,9 @@
copy</command> is able to operate directly on two URLs.</para>
<para>E adesso il metodo più semplice di creare un ramo, di cui
- dovevamo parlare per primo: <command>svn
+ si doveva parlare per primo: <command>svn
copy</command> può operare direttamente su due URL.</para>
-
+
<screen>
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/my-calc-branch \
@@ -371,7 +376,7 @@
<filename>/calc/trunk</filename>. This is shown in <xref
linkend="svn.branchmerge.using.create.dia-1"/>. Notice that the second method,
however, performs an <emphasis>immediate</emphasis> commit.
- <footnote>
+ <footnote>
<para>Subversion does not support
cross-repository copying. When using URLs with <command>svn
copy</command> or <command>svn move</command>, you can only
@@ -381,14 +386,14 @@
check out a large mirror of the repository. In fact, this
technique doesn't even require you to have a working copy at
all.</para>
-
+
<para>Realmente non c'è differenza tra questi due metodi.
Entrambe le procedure creano una nuova cartella nella revisione 341 e
la nuova cartella è una copia di <filename>/calc/trunk</filename>.
Come mostrato in <xref
linkend="svn.branchmerge.using.create.dia-1"/>. Notare che il secondo
metodo, tuttavia, fa anche commit <emphasis>immediato</emphasis>.
- <footnote>
+ <footnote>
<para>Subversion non supporta la copia tra due depositi
(cross-repository). Usando gli URL con <command>svn
copy</command> o <command>svn move</command>, si possono
@@ -397,15 +402,15 @@
Questa è una procedura più semplice, perché non richiede di fare
checkout di grande parte del deposito. Infatti, questa tecnica
non richiede addirittura neanche di avere la copia di lavoro.</para>
-
+
<figure id="svn.branchmerge.using.create.dia-1">
<title>Deposito con la nuova copia</title>
<graphic fileref="images/ch04dia3.png"/>
</figure>
-
+
<sidebar>
<title>Le copie economiche</title>
-
+
<para lang="en">Subversion's repository has a special design. When you
copy a directory, you don't need to worry about the
repository growing huge—Subversion doesn't actually
@@ -418,7 +423,7 @@
changes—the rest of the files continue to exist as
links to the original files in the original
directory.</para>
-
+
<para>Il deposito di Subversion ha un design speciale.
Quando si fa la copia della cartella, non dovete preoccuparvi
della massice crescita del deposito—Subversion in verità
@@ -430,7 +435,7 @@
della cartella copiata, solo quel file cambia—il resto
dei file continua esistere come i link ai file originali nella
cartella originale.</para>
-
+
<para lang="en">This is why you'll often hear Subversion users talk
about <quote>cheap copies</quote>. It doesn't matter how
large the directory is—it takes a very tiny, constant
@@ -445,29 +450,29 @@
<para>E per questo spesso sentirette utenti di Subversion parlare
delle <quote>copie economiche</quote>. Non importa quanto è
grande la cartella—fare la sua copia prende sempre
- molto piccola, costante, quantità del tempo. Infatti, questa
+ molto piccola, costante quantità del tempo. Infatti, questa
caratteristica è la base del funzionamento di commit in Subversion:
ogni revisione è <quote>copia economica</quote> della
revisione precedente, con dentro poche voci pigramente cambiate.
(Per leggere di più, visitate il sito web di Subversion e leggete
- di metodo <quote>bubble up</quote>negli documenti riguardo design
+ di metodo <quote>bubble up</quote> negli documenti riguardo design
di Subversion.)</para>
-
+
<para lang="en">Of course, these internal mechanics of copying and
sharing data are hidden from the user, who simply sees
copies of trees. The main point here is that copies are
cheap, both in time and space. Make branches as often as
you want.</para>
-
+
<para>Ovviamente, questo mecanismo interno di copiatura e
condivisione dei dati è per utenti nascosto, loro semplicemente vedono
le copie delle strutture. Qui il punto cardinale è che le copie
- sono economiche, parlando di spazio e tempo. Fatte i rami ogni volta
+ sono economiche, parlando di tempo e spazio. Fatte i rami ogni volta
che volete.</para>
</sidebar>
</sect2>
-
+
<!-- =============================================================== -->
<sect2 id="svn.branchmerge.using.work">
<title>Lavorare con il vostro ramo</title>
@@ -477,7 +482,7 @@
<para>Adesso che avete creato un ramo del progetto, potete tirare fuori
(check out) una nuova copia di lavoro per cominciar ad usarla:</para>
-
+
<screen>
$ svn checkout http://svn.example.com/repos/calc/branches/my-calc-branch
A my-calc-branch/Makefile
@@ -496,7 +501,7 @@
creating a working copy of a branch.)</para>
<para>Non c'è niente speciale di questa copia di lavoro; semplicemente
- rispecchia una cartella differente del deposito.
+ rispecchia una cartella diversa del deposito.
Quando pubblicate le vostre modifiche (commit), tuttavia, Sally
non può nenche vederle quando fa aggiornamento (update). La sua
copia di lavoro è di <filename>/calc/trunk</filename>.
@@ -510,7 +515,7 @@
<para>Facciamo finta che le settimane passano e succedono sequenti pubblicazioni
(commit):</para>
-
+
<!--<itemizedlist>
<listitem><para>
You make a change to
@@ -537,33 +542,46 @@
<filename>/calc/branches/my-calc-branch/button.c</filename>,
che crea revisione 342.</para>
</listitem>
-
+
<listitem><para>
Fatte modifica di
<filename>/calc/branches/my-calc-branch/integer.c</filename>,
che crea revisione 343.</para>
</listitem>
-
+
<listitem><para>
Sally modifica
<filename>/calc/trunk/integer.c</filename>, che crea
revisione 344.</para>
</listitem>
</itemizedlist>
-
- <para>There are now two independent lines of development, shown
+
+ <para lang="en">There are now two independent lines of development, shown
in <xref linkend="svn.branchmerge.using.work.dia-1"/>, happening on
<filename>integer.c</filename>.</para>
- <figure id="svn.branchmerge.using.work.dia-1">
+ <para>Ci sono adesso due linee di sviluppo independenti, mostrate
+ in <xref linkend="svn.branchmerge.using.work.dia-1"/>, che toccano
+ <filename>integer.c</filename>.</para>
+
+ <!-- <figure id="svn.branchmerge.using.work.dia-1">
<title>The branching of one file's history</title>
<graphic fileref="images/ch04dia4.png"/>
+ </figure> -->
+
+ <figure id="svn.branchmerge.using.work.dia-1">
+ <title>Ramificazione della storia d'un file</title>
+ <graphic fileref="images/ch04dia4.png"/>
</figure>
- <para>Things get interesting when you look at the history of
+ <para lang="en">Things get interesting when you look at the history of
changes made to your copy of
<filename>integer.c</filename>:</para>
+ <para>Le cose diventano interessanti quando guardate la storia delle
+ modifiche della vostra copia di
+ <filename>integer.c</filename>:</para>
+
<screen>
$ pwd
/home/user/my-calc-branch
@@ -600,7 +618,7 @@
------------------------------------------------------------------------
</screen>
- <para>Notice that Subversion is tracing the history of your
+ <para lang="en">Notice that Subversion is tracing the history of your
branch's <filename>integer.c</filename> all the way back
through time, even traversing the point where it was copied.
It shows the creation of the branch as an event in the
@@ -609,6 +627,15 @@
copied. Now look what happens when Sally runs the same
command on her copy of the file:</para>
+ <para>Notare che Subversion tiene traccia della storia di
+ <filename>integer.c</filename> del vostro ramo dietro tutto il tempo,
+ attraversando anche il punto dov'è stato copiato.
+ Mostra la creazione del ramo come evento nella storia,
+ perché <filename>integer.c</filename> era stato implicitamente copiato
+ quando tutto il <filename>/calc/trunk/</filename> era stato copiato.
+ Adesso guardate che sucede quando Sally avvia lo stesso comando
+ sulla sua copia del file:</para>
+
<screen>
$ pwd
/home/sally/calc
@@ -638,7 +665,7 @@
------------------------------------------------------------------------
</screen>
- <para>Sally sees her own revision 344 change, but not the change
+ <para lang="en">Sally sees her own revision 344 change, but not the change
you made in revision 343. As far as Subversion is concerned,
these two commits affected different files in different
repository locations. However, Subversion
@@ -647,25 +674,42 @@
341, they used to be the same file. That's why you and Sally
both see the changes made in revisions 303 and 98.</para>
+ <para>Sally vede la sua modifica nella versione 344, ma non la modifica
+ che voi avete fatto nella versione 343. ??As far as Subversion is concerned,?
+ questi due commit riguardano i file diversi nelle diverse locazioni
+ del deposito. Tuttavia, Subversion <emphasis>mostra</emphasis> che questi
+ due file condividono una storia comune. Prima che era fatta copia del ramo
+ nella versione 341, essi erano l'unico file. E per questo entrambi, voi e Sally,
+ vedete le modifiche fatte nelle versioni 303 e 98.</para>
+
</sect2>
<!-- =============================================================== -->
<sect2 id="svn.branchmerge.using.concepts">
- <title>The Key Concepts Behind Branches</title>
+ <!-- <title>The Key Concepts Behind Branches</title> -->
+ <title>Concetti chiave dietro i rami</title>
- <para>There are two important lessons that you should remember
+ <para lang="en">There are two important lessons that you should remember
from this section.</para>
+ <para>Ci sono due lezioni importanti che covete ricordare
+ da questa sezione.</para>
+
<orderedlist>
<listitem>
- <para>Unlike many other version control systems,
+ <para lang="en">Unlike many other version control systems,
Subversion's branches exist as <emphasis>normal filesystem
directories</emphasis> in the repository, not in an extra
dimension. These directories just happen to carry some
extra historical information.</para>
+ <para>Diversamente da molti altri sistemi di controllo di vesione,
+ rami di Subversion esistono come <emphasis>normali cartelle
+ del filesystem</emphasis> in deposito, non in una dimensione extra.
+ Succede solo che queste cartelle portano qualche
+ storica informazione extra.</para>
</listitem>
<listitem>
- <para>Subversion has no internal concept of a
+ <para lang="en">Subversion has no internal concept of a
branch—only copies. When you copy a directory, the
resulting directory is only a <quote>branch</quote>
because <emphasis>you</emphasis> attach that meaning to
@@ -673,6 +717,12 @@
it differently, but to Subversion it's just an ordinary
directory that happens to have been created by
copying.</para>
+ <para>Subversion non ha un concetto interno dei rami—solo copie.
+ Quando copiate una cartella, la cartella risultante
+ è un <quote>ramo</quote> solo perché <emphasis>voi</emphasis> le date
+ questo significato. Potete pensare alla cartella diversamente o
+ trattarla diversamente, ma per Subversion essa è solo normale
+ cartella, a quall'è successo di esser creata tramite copiatura.</para>
</listitem>
</orderedlist>
@@ -684,42 +734,69 @@
<!-- ================================================================= -->
<!-- ================================================================= -->
<sect1 id="svn.branchmerge.copychanges">
- <title>Copying Changes Between Branches</title>
+ <!-- <title>Copying Changes Between Branches</title> -->
+ <title>Copiare modifiche tra i rami</title>
- <para>Now you and Sally are working on parallel branches of the
+ <para lang="en">Now you and Sally are working on parallel branches of the
project: you're working on a private branch, and Sally is
working on the <firstterm>trunk</firstterm>, or main line of
development.</para>
- <para>For projects that have a large number of contributors, it's
+ <para>Adesso voi e Sally state lavorando sui rami paralleli del progetto:
+ voi lavorate su un ramo privato e Sally lavora su
+ <firstterm>trunk</firstterm>, o linea principale dello sviluppo.</para>
+
+ <para lang="en">For projects that have a large number of contributors, it's
common for most people to have working copies of the trunk.
Whenever someone needs to make a long-running change that is
likely to disrupt the trunk, a standard procedure is to create a
private branch and commit changes there until all the work is
complete.</para>
- <para>So, the good news is that you and Sally aren't interfering
+ <para>Per progetti che hanno grande numero di contribuenti, è comune
+ per molta gente di avere copie di lavoro del trunk.
+ Ogni volta che qualcuno ha bisogno di fare ??long-running? modifiche,
+ che potrebbero disturbare il trunk, procedura standard è di creare
+ un ramo privato e pubblicare (commit) le modifiche là finché tutto
+ il lavoro no è completo.</para>
+
+ <para lang="en">So, the good news is that you and Sally aren't interfering
with each other. The bad news is that it's very easy to drift
<emphasis>too</emphasis> far apart. Remember that one of the
problems with the <quote>crawl in a hole</quote> strategy is
that by the time you're finished with your branch, it may be
near-impossible to merge your changes back into the trunk
without a huge number of conflicts.</para>
-
- <para>Instead, you and Sally might continue to share changes as
+
+ <para>Allora, la notizia buona è che voi e Sally non vi disturbate
+ a vicenda. La notizia cativa è che è molto facile slittare
+ <emphasis>tropo</emphasis> lontano. Ricordate che uno dei problemi
+ della strategia <quote>nascondersi in una buca</quote> è
+ che quando avrete finito con il vostro ramo, potrebbe essere
+ quasi impossibile fondere vostre modifiche nel tronco principale senza
+ largo numero di conflitti.</para>
+
+ <para lang="en">Instead, you and Sally might continue to share changes as
you work. It's up to you to decide which changes are worth
sharing; Subversion gives you the ability to selectively
<quote>copy</quote> changes between branches. And when you're
completely finished with your branch, your entire set of branch
changes can be copied back into the trunk.</para>
-
+
+ <para>??Instead?, voi e Sally potrette continuare di scambiarsi modifiche
+ mentre lavorate. Spetta a voi decidere qualle modifiche vale la pena
+ condividere; Subversion vi dà l'abilità di <quote>copiare</quote>
+ modifiche tra i rami selettivamente. E quando avrete completamente
+ finito con il vostro ramo, vostro completto insieme di modifiche del ramo
+ può essere copiato dietro nel tronco (trunk).</para>
+
<!-- =============================================================== -->
<sect2 id="svn.branchmerge.copychanges.specific">
- <title>Copying Specific Changes</title>
-
+ <!-- <title>Copying Specific Changes</title> -->
+ <title>Copiare modifiche specifiche</title>
- <para>In the previous section, we mentioned that both you and
+ <para lang="en">In the previous section, we mentioned that both you and
Sally made changes to <filename>integer.c</filename> on
different branches. If you look at Sally's log message for
revision 344, you can see that she fixed some spelling errors.
@@ -731,7 +808,20 @@
now, <emphasis>before</emphasis> you start working too heavily
in the same places.</para>
- <para>It's time to use the <command>svn merge</command> command.
+ <para>Nella precedente sezione, abbiamo menzionato che
+ entrambi, voi e Sally avete fatto modifiche su
+ <filename>integer.c</filename> nei rami diversi.
+ Se date un sguardo al messaggio di log di Sally (versione
+ 344), potete vedere che ella ha corretto qualche errore di battitura.
+ Senza dubbio, vostra copy dello stesso file ancora ha gli stessi
+ errori. È probabile che le vostr future modifich al file toccheranno
+ gli stessi posti che hanno errori di battitura, così sorgeranno alcuni
+ potenziali conflitti, quando un giorno andrete a fondere il vostro ramo.
+ Meglio incorporare le modifiche di Sally adesso
+ <emphasis>prima</emphasis> che cominciate lavoro troppo pesante
+ sugli stessi posti.</para>
+
+ <para lang="en">It's time to use the <command>svn merge</command> command.
This command, it turns out, is a very close cousin to the
<command>svn diff</command> command (which you read about in
Chapter 3). Both commands are able to compare any two objects
@@ -739,13 +829,21 @@
you can ask <command>svn diff</command> to show you the exact
change made by Sally in revision 344:</para>
+ <para>È ora di usare comando <command>svn merge</command>.
+ Questo comando, come si vedrà, è cugino molto stretto del
+ comando <command>svn diff</command> (di quale avete letto nel
+ Capitolo 3). Entrambi comandi sono capaci di comparare aulsiasi
+ due oggetti in deposito e descrivere le differenze. Per esempio,
+ potete chiedere a <command>svn diff</command> di mostrare
+ esatta modifica fatta da Sally nella versione 344:</para>
+
<screen>
$ svn diff -r 343:344 http://svn.example.com/repos/calc/trunk
Index: integer.c
===================================================================
---- integer.c (revision 343)
-+++ integer.c (revision 344)
+--- integer.c (revision 343)
++++ integer.c (revision 344)
@@ -147,7 +147,7 @@
case 6: sprintf(info->operating_system, "HPFS (OS/2 or NT)"); break;
case 7: sprintf(info->operating_system, "Macintosh"); break;
@@ -761,34 +859,39 @@
high = high << 8; /* interpret MSB correctly */
- total = low + high; /* add them togethe for correct total */
+ total = low + high; /* add them together for correct total */
-
+
info->extra_header = (unsigned char *) my_malloc(total);
fread(info->extra_header, total, 1, gzfile);
@@ -241,7 +241,7 @@
Store the offset with ftell() ! */
-
+
if ((info->data_offset = ftell(gzfile))== -1) {
- printf("error: ftell() retturned -1.\n");
+ printf("error: ftell() returned -1.\n");
exit(1);
}
-
+
@@ -249,7 +249,7 @@
printf("I believe start of compressed data is %u\n", info->data_offset);
#endif
-
+
- /* Set postion eight bytes from the end of the file. */
+ /* Set position eight bytes from the end of the file. */
-
+
if (fseek(gzfile, -8, SEEK_END)) {
printf("error: fseek() returned non-zero\n");
</screen>
-
- <para>The <command>svn merge</command> command is almost exactly
+
+ <para lang="en">The <command>svn merge</command> command is almost exactly
the same. Instead of printing the differences to your
terminal, however, it applies them directly to your working
copy as <emphasis>local modifications</emphasis>:</para>
-
+
+ <para>Il comando <command>svn merge</command> è quasi esattamente
+ uguale. Invece di mostrare le differenze sullo schermo
+ terminal, tuttavia, le applica direttamente nella vostra
+ copia di lavoro come <emphasis>modifiche locali</emphasis>:</para>
+
<screen>
$ svn merge -r 343:344 http://svn.example.com/repos/calc/trunk
U integer.c
@@ -797,7 +900,7 @@
M integer.c
</screen>
- <para>The output of <command>svn merge</command> shows that your
+ <para lang="en">The output of <command>svn merge</command> shows that your
copy of <filename>integer.c</filename> was patched. It now
contains Sally's change—the change has been
<quote>copied</quote> from the trunk to your working copy of
@@ -805,24 +908,51 @@
At this point, it's up to you to review the local modification
and make sure it works correctly.</para>
- <para>In another scenario, it's possible that things may not have
+ <para>L'output di <command>svn merge</command> mostra che vostra
+ copia di <filename>integer.c</filename> era stata modificata. Adesso
+ contiene le modifiche di Sally—le modifiche erano state
+ <quote>copiate</quote> dal tronco(trunk) nella copia di lavoro
+ del vostro ramo privato e adesso esistono come modifiche locali.
+ A questo punto, tocca a voi rivedere le modifiche locali ed assicurare
+ che funzionano correttamente.</para>
+
+ <para lang="en">In another scenario, it's possible that things may not have
gone so well, and that <filename>integer.c</filename> may have
entered a conflicted state. You might need to resolve the
conflict using standard procedures (see Chapter 3), or if you
decide that the merge was a bad idea altogether, simply give up
and <command>svn revert</command> the local change.</para>
- <para>But assuming that you've reviewed the merged change, you can
+ <para>In un altro scenario, è possibile che le cose possono no andare
+ cos' bene e perciò <filename>integer.c</filename> può entrare
+ nello stato di conflitto. Potrette avere bisogno di risolvere
+ il conflitto usando procedure standard (vedi Capitolo 3), oppure
+ se decidete che fusione era una cativa idea ??altogether?,
+ semplicemente ??give up? e scartare con <command>svn revert</command>
+ le modifiche locali.</para>
+
+ <para lang="en">But assuming that you've reviewed the merged change, you can
<command>svn commit</command> the change as usual. At that
point, the change has been merged into your repository branch.
In version control terminology, this act of copying changes
between branches is commonly called
<firstterm>porting</firstterm> changes.</para>
- <para>When you commit the local modification, make sure your log
+ <para>Ma assumendo che avete ispezionato le modifiche incorporate,
+ potete pubblicare modifica con <command>svn commit</command>
+ come al solito. A questo punto, la modifica sarà fusa dentro
+ il vostro ramo del deposito. Nella terminologia di controlo delle
+ versioni, questo atto di copiatura delle modifiche tra i rami
+ è comunemnte chaimato <firstterm>porting</firstterm> dele modifiche.</para>
+
+ <para lang="en">When you commit the local modification, make sure your log
message mentions that you're porting a specific change from
one branch to another. For example:</para>
+ <para>Facendo commit delle modifiche locali, assicuratevi che
+ vostro messaggio menziona che state portando una modifica specifica
+ da un ramo ad altro. Per esempio:</para>
+
<screen>
$ svn commit -m "integer.c: ported r344 (spelling fixes) from trunk."
Sending integer.c
@@ -830,18 +960,28 @@
Committed revision 360.
</screen>
- <para>As you'll see in the next sections, this is a very
+ <para lang="en">As you'll see in the next sections, this is a very
important <quote>best practice</quote> to follow.</para>
+ <para>Come verdrete nella prossima sezione, questa è molto importante
+ <quote>regola d'arte</quote> da seguire.</para>
+
<sidebar>
- <title>Why Not Use Patches Instead?</title>
-
- <para>A question may be on your mind, especially if you're a
+ <!-- <title>Why Not Use Patches Instead?</title> -->
+ <title>Perché non usare invece Patch?</title>
+
+ <para lang="en">A question may be on your mind, especially if you're a
Unix user: why bother to use <command>svn merge</command> at
all? Why not simply use the operating system's
<command>patch</command> command to accomplish the same job?
For example:</para>
+ <para>Potete pensare a una domanda, specialmente se siete utenti
+ Unix: perchè disturbarsi con <command>svn merge</command>?
+ Perché semplicemente non usare comando di sistema operativo
+ <command>patch</command> per svolgere lo stesso lavoro?
+ Per esempio:</para>
+
<screen>
$ svn diff -r 343:344 http://svn.example.com/repos/calc/trunk > patchfile
$ patch -p0 < patchfile
@@ -853,7 +993,7 @@
done
</screen>
- <para>In this particular case, yes, there really is no
+ <para lang="en">In this particular case, yes, there really is no
difference. But <command>svn merge</command> has special
abilities that surpass the <command>patch</command> program.
The file format used by <command>patch</command> is quite
@@ -874,9 +1014,29 @@
changes in tree structure and properties by directly applying
them to your working copy.</para>
+ <para>In questo caso particolare, sì, veramente non c'è
+ differenza. Ma <command>svn merge</command> ha le
+ abilità speciali che sorpassano il programma <command>patch</command>.
+ Formato di file usato da <command>patch</command> è un po'
+ limitato; è capace di maneggare contenuto del file. Non c'è
+ modo di rappresentare modifiche delle <emphasis>strutture</emphasis>,
+ come aggiunta, rimozione o cambio del nome dei file e delle
+ cartelle. Se la modifica di Sally ha, diciamo, aggiunto una
+ nuova cartella, output di <command>svn diff</command>
+ non la menziona neanche. <command>svn
+ diff</command> mostra solo patch-format limitato, così ci sono
+ alcune idee che semplicemente non può esprimere.
+ <footnote>
+ <para>In futuro, progetto Subversion pianifica du usare
+ (o inventare) patch format estesso che descrive modifiche
+ delle struture e properietà.</para>
+ </footnote>
+ Il comando <command>svn merge</command>, tuttavia, può esprimere
+ modifiche della struttura e properietà applicandole direttamente
+ sulla vostra copia di lavoro.</para>
</sidebar>
-
- <para>A word of warning: while <command>svn diff</command> and
+
+ <para lang="en">A word of warning: while <command>svn diff</command> and
<command>svn merge</command> are very similar in concept, they
do have different syntax in many cases. Be sure to read about
them in Chapter 9 for details, or ask <command>svn
@@ -886,31 +1046,60 @@
specified, it assumes you are trying to perform one of the
following common operations:</para>
+ <para>Una parola di avvertimento: anche se <command>svn diff</command> e
+ <command>svn merge</command> sono nel concetto molto simili, hanno
+ in molti casi la sintassi diversa. Assicuratevi di leggere dettagli
+ nel Capitolo 9 o chiedete lumi a <command>svn help</command>.
+ Per esempio, <command>svn merge</command> richiede percorso
+ di copia di lavoro come destinazione, i.e. un posto dove può applicare
+ le modifiche della struttura,
+ it should apply the tree-changes. Se la destinazione non è specificata,
+ assume che state provando di fare una delle seguenti comuni
+ operazioni:</para>
+
<orderedlist>
<listitem>
- <para>You want to merge directory changes into your current
+ <para lang="en">You want to merge directory changes into your current
working directory.</para>
+ <para>Volete fondere modifiche delle cartelle nella vostra
+ cartella di lavoro.</para>
</listitem>
<listitem>
- <para>You want to merge the changes in a specific file into
- a file by the same name which exists in your current working
+ <para lang="en">You want to merge the changes in a specific file into
+ a file by the same name which exists in your current working
directory.</para>
+ <para>Volete fondere le modifiche d'un file specifico
+ dentro un file con lo stesso nome che esiste nella vostra
+ cartella di lavoro.</para>
</listitem>
</orderedlist>
- <para>If you are merging a directory and haven't specified a
+ <para lang="en">If you are merging a directory and haven't specified a
target path, <command>svn merge</command> assumes the first case
above and tries to apply the changes into your current
directory. If you are merging a file, and that file (or a file
by the same name) exists in your current working directory,
<command>svn merge</command> assumes the second case and tries
to apply the changes to a local file with the same name.</para>
-
- <para>If you want changes applied somewhere else, you'll
+
+ <para>Se state fondendo una cartella e non avete specificato percorso
+ di destinazione, <command>svn merge</command> assume il primo caso
+ sopra e prova applicare le modifiche dentro vostra cartella attuale.
+ Se state fondendo un file e questo file (o un file con lo stesso nome)
+ esiste dentro vostra cartella attuale,
+ <command>svn merge</command> assume il secondo caso e prova
+ applicare le modifiche dentro file locale con lo stesso nome.</para>
+
+ <para lang="en">If you want changes applied somewhere else, you'll
need to say so. For example, if you're sitting in the parent
directory of your working copy, you'll have to specify the
target directory to receive the changes:</para>
-
+
+ <para>Se volete applicare le modifiche in un altro posto, dovete dirlo.
+ Per esempio, se siete nella cartella parente della vostra copia di
+ lavoro, dovete specificare cartella destinazione per ricevere
+ le modifiche:</para>
+
<screen>
$ svn merge -r 343:344 http://svn.example.com/repos/calc/trunk my-calc-branch
U my-calc-branch/integer.c
@@ -920,9 +1109,10 @@
<!-- =============================================================== -->
<sect2 id="svn.branchmerge.copychanges.keyconcept">
- <title>The Key Concept Behind Merging</title>
+<!-- <title>The Key Concept Behind Merging</title> -->
+ <title>Concetto chiave dietro ??Merging?</title>
- <para>You've now seen an example of the <command>svn
+ <para lang="en">You've now seen an example of the <command>svn
merge</command> command, and you're about to see several
more. If you're feeling confused about exactly how merging
works, you're not alone. Many users (especially those new
@@ -933,7 +1123,19 @@
understanding exactly how <command>svn merge</command>
behaves.</para>
- <para>The main source of confusion is the
+ <para>Abbiamo visto un esempio di comando <command>svn
+ merge</command>, e stiamo per vedere di più.
+ Se vi sentite confusi riguardo come funziona esattamente
+ ??merging?, non siete soli. Molti utenti (specialmente
+ quelli nuovi a cotrollo delle versioni) rimangono inizialmente
+ perplessi riguardo la giusta sintassi del comando e come
+ e quando usare questa caratteristica.
+ ??But fear not?, questo comando è in verità molto più
+ semplice che si pensa. C'è una tecnica molto semplice
+ per capire esattamente come <command>svn merge</command>
+ ??behaves?.</para>
+
+ <para lang="en">The main source of confusion is the
<emphasis>name</emphasis> of the command. The term
<quote>merge</quote> somehow denotes that branches are
combined together, or that there's some sort of mysterious
@@ -943,25 +1145,40 @@
two repository trees are compared, and the differences are
applied to a working copy.</para>
- <para>The command takes three arguments:</para>
+ <para>La fonte primaria della confusione è il
+ <emphasis>nome</emphasis> del comando. Il termine
+ <quote>merge</quote>(fondere) qualche volta denota che i rami sono
+ combinati tra loro, oppure che ci sta qualche sorta di misterioso
+ ??blending of data going on?. Non è il caso. Più appropriato
+ nome per questo comando forse sarebbe
+ <command>svn diff-and-apply</command>(trova-differenze-e-applicale),
+ perché questo è tutto che accade: due strutture del deposito sono comparate
+ e le differenze sono applicate alla copia di lavoro.</para>
+
+ <para lang="en">The command takes three arguments:</para>
+ <para>Il comando prende tre argomenti:</para>
<orderedlist>
- <listitem><para>An initial repository tree (often called the
+ <listitem><para lang="en">An initial repository tree (often called the
<firstterm>left side</firstterm> of the
- comparison),</para></listitem>
+ comparison),</para><para>Una struttura del deposito iniziale (spesso chiamata il
+ <firstterm>lato sinistro</firstterm> della comparazione),</para></listitem>
- <listitem><para>A final repository tree (often called the
+ <listitem><para lang="en">A final repository tree (often called the
<firstterm>right side</firstterm> of the
- comparison),</para></listitem>
+ comparison),</para><para>Una struttura del deposito finale (spesso chiamata il
+ <firstterm>lato destro</firstterm> della comparazione),</para></listitem>
- <listitem><para>A working copy to accept the differences as
+ <listitem><para lang="en">A working copy to accept the differences as
local changes (often called the <firstterm>target</firstterm>
- of the merge).</para></listitem>
-
+ of the merge).</para><para>Una copia di lavoro per ricevere le differenze
+ come modifiche locali (spesso chiamata la <firstterm>destinazione</firstterm>
+ della fusione).</para></listitem>
+
</orderedlist>
- <para>Once these three arguments are specified, the two trees
+ <para lang="en">Once these three arguments are specified, the two trees
are compared, and the resulting differences are applied to the
target working copy as local modifications. When the command
is done, the results are no different than if you had
@@ -971,21 +1188,35 @@
you don't like the results, you can simply <command>svn
revert</command> all of the changes.</para>
- <para>The syntax of <command>svn merge</command> allows you to
+ <para>Una volta specificati questi tre argomenti, le due strutture
+ sono comparate e le differenze risultanti sono applicate
+ alla copia di lavoro destinataria come midifiche locali.
+ Quando il comando finisce il suo lavoro, il risultato non è diverso
+ da come aveste editato i file manualmente o aveste da soli avviato
+ svariati comandi <command>svn add</command> o <command>svn delete</command>.
+ Se il risultato vi piace, potete fare commit. Se non vi piace,
+ con semplice comando <command>svn revert</command> scartate tutte le
+ modifiche.</para>
+
+ <para lang="en">The syntax of <command>svn merge</command> allows you to
specify the three necessary arguments rather flexibly. Here
are some examples:</para>
- <screen>
+ <para>La sintassi di comando <command>svn merge</command> vi permete
+ di specificare i tre argomenti necessari in modo molto flessibile
+ Qui ci sono alcuni esempi:</para>
+
+ <screen>
$ svn merge http://svn.example.com/repos/branch1@150 \
http://svn.example.com/repos/branch2@212 \
my-working-copy
-
+
$ svn merge -r 100:200 http://svn.example.com/repos/trunk my-working-copy
$ svn merge -r 100:200 http://svn.example.com/repos/trunk
</screen>
- <para>The first syntax lays out all three arguments explicitly,
+ <para lang="en">The first syntax lays out all three arguments explicitly,
naming each tree in the form <emphasis>URL at REV</emphasis> and
naming the working copy target. The second syntax can be used
as a shorthand for situations when you're comparing two
@@ -993,17 +1224,26 @@
how the working-copy argument is optional; if omitted, it
defaults to the current directory.</para>
+ <para>La prima sintassi ??lays out? tutti e tre argomenti
+ esplicitamente, nominando ogni struttura in forma <emphasis>URL at REV</emphasis>
+ e nominando la copia di lavoro ricevente. La seconda sintassi
+ può essere usata, quando state comparando due versioni diverse
+ dello stesso URL. L'ultima sintassi mostra che argomento 'copia di lavoro'
+ è facoltativo; se omesso, il suo valore predefinito è la cartella
+ attuale.</para>
</sect2>
-
+
<!-- =============================================================== -->
<sect2 id="svn.branchmerge.copychanges.bestprac">
- <title>Best Practices for Merging</title>
+ <!-- <title>Best Practices for Merging</title> -->
+ <title>Regole d'arte per fusione</title>
<sect3 id="svn.branchmerge.copychanges.bestprac.track">
- <title>Tracking Merges Manually</title>
+ <!-- <title>Tracking Merges Manually</title> -->
+ <title>Tenere a mano traccia delle fusioni</title>
- <para>Merging changes sounds simple enough, but in practice it
+ <para lang="en">Merging changes sounds simple enough, but in practice it
can become a headache. The problem is that if you
repeatedly merge changes from one branch to another, you
might accidentally merge the same change
@@ -1013,21 +1253,43 @@
does nothing. But if the already-existing change has been
modified in any way, you'll get a conflict.</para>
- <para>Ideally, your version control system should prevent the
+ <para>Fondere modifiche suona abbastanza semplice, ma in prattica
+ può diventare mal di testa. Il problema è che se ripetutamente
+ fondete modifiche da un ramo ad altro, potete accidentalmente
+ fondere la stessa modifica <emphasis>due volte</emphasis>.
+ Se succede questo, a volte tutto va bene. Quando Subversion applica
+ le modifiche su un file, tipicamente si accorge che il file queste
+ modifiche ha già e non fa niente. Ma se la già esistente modifica
+ era ulteriormente modificata, otente un conflitto.</para>
+
+ <para lang="en">Ideally, your version control system should prevent the
double-application of changes to a branch. It should
automatically remember which changes a branch has already
received, and be able to list them for you. It should use
this information to help automate merges as much as
possible.</para>
- <para>Unfortunately, Subversion is not such a system. Like
+ <para>Idealmente, vostro sistema di controlo delle versioni
+ dovrebbe prevenire la doppia applicazione delle modifiche su un ramo.
+ Dovrebbe automaticamente ricordare quale modifiche il ramo ha già
+ ricevuto ed essere capace di elencarle per voi. Dovrebbe
+ usare queste informazioni per automatizzare le fusioni
+ quanto più possibile.</para>
+
+ <para lang="en">Unfortunately, Subversion is not such a system. Like
CVS, Subversion does not yet record any information about
merge operations. When you commit local modifications, the
repository has no idea whether those changes came from
running <command>svn merge</command>, or from just
hand-editing the files.</para>
- <para>What does this mean to you, the user? It means that
+ <para>Sfortunatamente, un sistema così non è Subversion. Come il
+ CVS, Subversion non memorizza ancora nessuna informazione riguardo
+ operazioni di fusioni. Quando fatte commit delle modifiche locali,
+ il deposito non ha idea se queste modifiche arrivano da
+ <command>svn merge</command> eseguito o da editazione a mano dei file.</para>
+
+ <para lang="en">What does this mean to you, the user? It means that
until the day Subversion grows this feature, you'll have to
track merge information yourself. The best place to do this
is in the commit log-message. As demonstrated in the
@@ -1040,26 +1302,55 @@
that won't be redundant with previously ported
changes.</para>
- <para>In the next section, we'll show some examples of this
+ <para>Che cosa significa questo per voi, utente? Significa che
+ fino al giorno in cui Subversion avrà questa capacità,
+ dovete traccare informazioni riguardo le fusioni da soli.
+ Il posto migliore dove farlo è messaggio di commit.
+ Come era dimostrato nel esempi precedente, è raccomandato
+ che vostro messaggio manziona specifico numero della revisione
+ (o rango delle revisioni) che state fondendo nel vostro ramo.
+ In futuro potete avviare comando <command>svn log</command>
+ per vedere quale modifiche contiene già il vostro ramo.
+ Questo vi permete di costruire con cura prossimi comandi
+ <command>svn merge</command> che non saranno redundanti
+ con le modifiche già riportate in precedenza.</para>
+
+ <para lang="en">In the next section, we'll show some examples of this
technique in action.</para>
+ <para>Nella prossima sezione mostreremo in azione alcuni esempi
+ di questa tecnica.</para>
+
</sect3>
-
+
<sect3 id="svn.branchmerge.copychanges.bestprac.preview">
- <title>Previewing Merges</title>
-
- <para>Because merging only results in local modifications,
+ <!-- <title>Previewing Merges</title> -->
+ <title>Anteprima delle fusioni</title>
+
+ <para lang="en">Because merging only results in local modifications,
it's not usually a high-risk operation. If you get the
merge wrong the first time, simply <command>svn
- revert</command> the changes and try again.</para>
-
- <para>It's possible, however, that your working copy might
+ revert</command> the changes and try again.</para>
+
+ <para>Perché risultato delle fusioni sono soltanto
+ le modifiche locali, questa non è normalmente una operazione
+ ad alto rischio. Se vi capita di fondere male prima volta,
+ semplicemente buttate via le modifiche, <command>svn
+ revert</command> e provate di nuovo.</para>
+
+ <para lang="en">It's possible, however, that your working copy might
already have local modifications. The changes applied by a
merge will be mixed with your pre-existing ones, and running
<command>svn revert</command> is no longer an option. The
two sets of changes may be impossible to separate.</para>
- <para>In cases like this, people take comfort in being able to
+ <para>È possibile, comunque, che vostra copia di lavoro contiene anche
+ le modifiche locali. Le modifiche applicate da merge saranno mischiate
+ tra le vostre e avviare comando <command>svn revert</command> non è
+ più un ascelta pratticabile. Potrebbe essere impossibile separare
+ i due insiemi delle modifiche.</para>
+
+ <para lang="en">In cases like this, people take comfort in being able to
predict or examine merges before they happen. One simple
way to do that is to run <command>svn diff</command> with
the same arguments you plan to pass to <command>svn
@@ -1068,15 +1359,30 @@
<option>--dry-run</option> option to the merge
command:</para>
- <screen>
+ <para>In casi come questo, le persone si confortano con la possibilità
+ di prevedere o esaminare fusione prima che accade. Un semplice
+ modo per farlo è avviare <command>svn diff</command>
+ con gli stessi argomenti che avete in mente di passare a
+ <command>svn merge</command>, come abbiamo già mostrato nel nostro
+ primo esempio. Altro metodo di anteprima è aggiungere la opzione
+ <option>--dry-run</option>(a secco) al comando merge:</para>
+
+<!-- <screen>
$ svn merge --dry-run -r 343:344 http://svn.example.com/repos/calc/trunk
U integer.c
$ svn status
# nothing printed, working copy is still unchanged.
+</screen>-->
+<screen>
+ $ svn merge --dry-run -r 343:344 http://svn.example.com/repos/calc/trunk
+ U integer.c
+
+ $ svn status
+ # non stampa niente, copia di lavoro è ancora intatta.
</screen>
- <para>The <option>--dry-run</option> option doesn't actually
+ <para lang="en">The <option>--dry-run</option> option doesn't actually
apply any local changes to the working copy. It only shows
status codes that <emphasis>would</emphasis> be printed in a
real merge. It's useful for getting a <quote>high
@@ -1084,12 +1390,20 @@
times when running <command>svn diff</command> gives too
much detail.</para>
+ <para>La opzione <option>--dry-run</option> in verità non applica
+ nessuna modifica locale alla copia di lavoro. Mostra solo output
+ che <emphasis>sarebbe</emphasis> mostrato con la fusione vera.
+ Questo è utile per avere una previsione ad <quote>alto
+ livello</quote> della potenziale fusione, per quelle volte dove
+ comando <command>svn diff</command> dà troppi dettagli.</para>
+
</sect3>
<sidebar>
- <title>Subversion and Changesets</title>
+ <!-- <title>Subversion and Changesets</title> -->
+ <title>Subversion e gli changeset</title>
- <para>Everyone seems to have a slightly different definition
+ <para lang="en">Everyone seems to have a slightly different definition
of <quote>changeset</quote>, or at least a different
expectation of what it means for a version control system to
have <quote>changeset features</quote>. For our purpose,
@@ -1099,7 +1413,18 @@
to metadata. In more common speak, a changeset is just a
patch with a name you can refer to.</para>
- <para>In Subversion, a global revision number N names a tree
+ <para>Sembra che ciascuno ha la definizione degli
+ <quote>changeset</quote> legermente diversa, o almeno
+ diverse aspettative di che cosa significa per sistema
+ di controlo delle versioni avere <quote>capacità di changeset</quote>
+ (insieme delle modifiche). Per nostro scopo, diciamo che un
+ changeset è solo una collezione delle modifiche
+ con un nome unico. Le modifiche possono includere editazioni testuali
+ del contenuto dei file, modificazioni della struttura o cambiamenti
+ dei metadati. In parole povere, un changeset è solo un
+ ??patch? con nome con quale portremo riferirsi ad esso.</para>
+
+ <para lang="en">In Subversion, a global revision number N names a tree
in the repository: it's the way the repository looked after
the Nth commit. It's also the name of an implicit
changeset: if you compare tree N with tree N-1, you can
@@ -1117,19 +1442,44 @@
from one branch to another by naming them in the merge
arguments: <command>svn merge -r9237:9238</command> would
merge changeset #9238 into your working copy.</para>
+
+ <para>In Subversion, numero globale di versione N nomina una struttura
+ in deposito: modo in quale il deposito appare dopo Nessimo commit.
+ Ed è anche il nome di un implicito changeset: comparando struttura
+ N con struttura N-1, potete ricavare esatto ??patch? che era applicato.
+ Per questa ragione è semplice pensare <quote>revisione N</quote> non
+ solo come struttura ma nello stesso modo changeset. ##### If you use an issue
+ tracker to manage bugs, you can use the revision numbers to
+ refer to particular patches that fix bugs—for example,
+ <quote>this issue was fixed by revision 9238.</quote>.
+ Somebody can then run <command>svn log -r9238</command> to
+ read about the exact changeset which fixed the bug, and run
+ <command>svn diff -r9237:9238</command> to see the patch
+ itself. And Subversion's <literal>merge</literal> command
+ also uses revision numbers. You can merge specific changesets
+ from one branch to another by naming them in the merge
+ arguments: <command>svn merge -r9237:9238</command> would
+ merge changeset #9238 into your working copy.</para>
</sidebar>
<sect3 id="svn.branchmerge.copychanges.bestprac.merge">
- <title>Merge Conflicts</title>
+ <!-- <title>Merge Conflicts</title> -->
+ <title>Conflitti delle fusioni</title>
- <para>Just like the <command>svn update</command> command,
+ <para lang="en">Just like the <command>svn update</command> command,
<command>svn merge</command> applies changes to your working
copy. And therefore it's also capable of creating
conflicts. The conflicts produced by <command>svn
- merge</command>, however, are sometimes different, and this
+ merge</command>, however, are sometimes different, and this
section explains those differences.</para>
- <para>To begin with, assume that your working copy has no
+ <para>Così come comando <command>svn update</command>,
+ anche <command>svn merge</command> applica modifiche alla vostra
+ copia di lavoro. E perciò è capace generare conflitti. I conflitti
+ prodotti da <command>svn merge</command>, tuttavia, sono a volte
+ diversi e questa sezione spiega queste differenze.</para>
+
+ <para lang="en">To begin with, assume that your working copy has no
local edits. When you <command>svn update</command> to a
particular revision, the changes sent by the server will
always apply <quote>cleanly</quote> to your working copy.
@@ -1140,7 +1490,18 @@
delta is guaranteed to correctly convert your working copy
into the right-hand tree.</para>
- <para>But <command>svn merge</command> has no such guarantees
+ <para>Per cominciare, si assume che vostra copia di lavoro
+ non ha editazioni locali. Quando la aggiornate (<command>svn update</command>)
+ ad una perticolare revisione, le modifiche mandate dal server
+ si applicano sempre alla vostra copia di lavoro in modo
+ <quote>pulito</quote>.
+ Il server produce un ??delta? comparando due strutture: un'instantanea
+ virtuale della vostra copia di lavoro e struttura della revisione a quale
+ siete interessati. Perché lato sinistra della comparazione è uguale
+ a quel che già avete il delta garantisce di dorrettamente convertire
+ vostra copia di lavoro nella struttura di lato destra.</para>
+
+ <para lang="en">But <command>svn merge</command> has no such guarantees
and can be much more chaotic: the user can ask the server to
compare <emphasis>any</emphasis> two trees at all, even ones
that are unrelated to the working copy! This means there's
@@ -1153,6 +1514,20 @@
<quote>failed hunks</quote>, <command>svn merge</command>
will complain about <quote>skipped targets</quote>:</para>
+ <para>Ma <command>svn merge</command> non ha tali garanzie
+ e può essere più caotico: utente può chidere al server di
+ comparare <emphasis>qualsiasi</emphasis> due strutture, anche
+ tali che non hanno nessun legame con la copia di lavoro.
+ Questo significa che qui c'è largo potenziale per errori umani.
+ Utenti possono a volte comparare due strutture sbagliate,
+ creando delta che non si applica pulitamente.
+ <command>svn merge</command> farà il meglio per applicare più
+ possibile il delta, ma su alcune parti questo potrà essere
+ impossibile. Nello stesso modo come comando Unix
+ <command>patch</command> a volte si lamenta di ??<quote>failed hunks</quote>?,
+ <command>svn merge</command> può accusare <quote>skipped targets</quote>
+ (destinazioni saltate):</para>
+
<screen>
$ svn merge -r 1288:1351 http://svn.example.com/repos/branch
U foo.c
@@ -1164,7 +1539,7 @@
$
</screen>
- <para>In the previous example it might be the case that
+ <para lang="en">In the previous example it might be the case that
<filename>baz.c</filename> exists in both snapshots of the
branch being compared, and the resulting delta wants to
change the file's contents, but the file doesn't exist in
@@ -1178,7 +1553,21 @@
revert, and re-run <command>svn merge</command> with
different arguments.</para>
- <para>Also notice that the previous example shows a conflict
+ <para>Nel esempio precedente può essere caso che
+ <filename>baz.c</filename> esiste in entrambe instantanee del
+ ramo comparato e delta risultante vuole cambiare il contenuto del
+ file, ma il file non esiste nella copia di lavoro.
+ Qualunque sia causa, il messaggio
+ <quote>skipped</quote>(saltato) significa che
+ con alta probabilità utente sta comparando le strutture sbagliate;
+ questo è un segno classico del 'errore del conducente'.
+ Quando accade ciò, è semplice invertire ricorsivamente tutte le
+ modifiche create dalla fusione (<command>svn revert --recursive</command>),
+ cancellare ogni file o cartella rimasta senza controllo delle versioni
+ dopo revert e rifare <command>svn merge</command> con argomenti
+ diversi.</para>
+
+ <para lang="en">Also notice that the previous example shows a conflict
happening on <filename>glorb.h</filename>. We already
stated that the working copy has no local edits: how can a
conflict possibly happen? Again, because the user can use
@@ -1187,7 +1576,16 @@
changes that don't cleanly apply to a working file, even if
the file has no local modifications.</para>
- <para>Another small difference between <command>svn
+ <para>Notare ancora che precedente esempio mostra un conflitto
+ accaduto su <filename>glorb.h</filename>. Abbiamo già stabilito
+ che copia di lavoro non ha editazioni locali: come può allora
+ accadere un conflitto? Di nuovo, perché l'utente può usare
+ <command>svn merge</command> per definire ed applicare qualsiasi
+ delta vecchio a copia di lavoro, tale delta può contenere modifiche
+ testuali che non si applicano in modo pulito al file di lavoro,
+ anche se il file non ha le modifiche locali.</para>
+
+ <para lang="en">Another small difference between <command>svn
update</command> and <command>svn merge</command> are the
names of the full-text files created when a conflict
happens. In <xref linkend="svn.tour.cycle.resolve"/>, we saw
@@ -1206,19 +1604,45 @@
update versus ones that happened as a result of a
merge.</para>
+ <para>Altra piccola differenza tra <command>svn u