[svnbook commit] r2383 - trunk/src/it/book
bpietro
noreply at red-bean.com
Thu Aug 10 05:03:55 CDT 2006
Author: bpietro
Date: Thu Aug 10 05:03:54 2006
New Revision: 2383
Modified:
trunk/src/it/book/ch04.xml
Log:
first part (15%) translated
Modified: trunk/src/it/book/ch04.xml
==============================================================================
--- trunk/src/it/book/ch04.xml (original)
+++ trunk/src/it/book/ch04.xml Thu Aug 10 05:03:54 2006
@@ -1,47 +1,76 @@
<chapter id="svn.branchmerge">
- <title>Branching and Merging</title>
+ <title>Ramificazioni e fusioni</title>
<simplesect>
- <para>Branching, tagging, and merging are concepts common to
+ <para lang="en">Branching, tagging, and merging are concepts common to
almost all version control systems. If you're not familiar with
these ideas, we provide a good introduction in this chapter. If
you are familiar, then hopefully you'll find it interesting to
see how Subversion implements these ideas.</para>
- <para>Branching is a fundamental part of version control. If
+ <para>Ramificazioni, etichette e fusioni sono concetti comuni a
+ quasi tutti sistemi di controllo di versione. 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
assumes that you're already familiar with Subversion's basic
concepts (<xref linkend="svn.basic"/>).</para>
+ <para>Ramificazioni sono la parte fondamentale di controlo delle versioni.
+ Se state per permettere a Subversion di maneggiare i vostri dati,
+ 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>
<!-- ================================================================= -->
<!-- ================================================================= -->
<!-- ================================================================= -->
<sect1 id="svn.branchmerge.whatis">
- <title>What's a Branch?</title>
+ <title>Che cos'è un ramo?</title>
- <para>Suppose it's your job to maintain a document for a division
+ <para lang="en">Suppose it's your job to maintain a document for a division
in your company, a handbook of some sort. One day a different
division asks you for the same handbook, but with a few parts
<quote>tweaked</quote> for them, since they do things slightly
differently.</para>
- <para>What do you do in this situation? You do the obvious thing:
+ <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>
+
+ <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
small changes, you incorporate them into one copy or the
other.</para>
- <para>You often want to make the same change to both copies. For
+ <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
+ 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
documents are almost the same, after all; they only differ in
small, specific ways.</para>
- <para>This is the basic concept of a
+ <para>Spesso vi capita di dover fare lo stesso cambiamento in tutte e due
+ copie. Per es. avete scoperto errore di battitura nella prima copia,
+ 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
shares a common history if you look far enough back in time. A
@@ -49,12 +78,20 @@
from there, generating its own history (see <xref
linkend="svn.branchmerge.whatis.dia-1"/>).</para>
+ <para>Questo è il concetto base di
+ <firstterm>ramo</firstterm>—leteralmente, una linea di
+ 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
+ (vedi <xref linkend="svn.branchmerge.whatis.dia-1"/>).</para>
+
<figure id="svn.branchmerge.whatis.dia-1">
- <title>Branches of development</title>
+ <title>Rami di sviluppo</title>
<graphic fileref="images/ch04dia1.png"/>
</figure>
- <para>Subversion has commands to help you maintain parallel
+ <para lang="en">Subversion has commands to help you maintain parallel
branches of your files and directories. It allows you to create
branches by copying your data, and remembers that the copies are
related to one another. It also helps you duplicate changes
@@ -63,20 +100,33 @@
<quote>mix and match</quote> different lines of development in
your daily work.</para>
+ <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>mischiare e ?match?</quote>
+ le linee differenti dello sviluppo nel vostro lavoro giornaliero.</para>
+
</sect1>
<!-- ================================================================= -->
<!-- ================================================================= -->
<!-- ================================================================= -->
<sect1 id="svn.branchmerge.using">
- <title>Using Branches</title>
+ <title>Usare i rami</title>
- <para>At this point, you should understand how each commit creates
+ <para lang="en">At this point, you should understand how each commit creates
an entire new filesystem tree (called a <quote>revision</quote>)
in the repository. If not, go back and read about revisions in
<xref linkend="svn.basic.in-action.revs"/>.</para>
- <para>For this chapter, we'll go back to the same example from
+ <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>
+
+ <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,
<filename>paint</filename> and <filename>calc</filename>.
@@ -85,12 +135,21 @@
<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,
+ <filename>paint</filename> e <filename>calc</filename>.
+ Da notare che in <xref linkend="svn.branchmerge.using.dia-1"/>, comunque,
+ 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">
<title>Starting repository layout</title>
<graphic fileref="images/ch04dia2.png"/>
</figure>
- <para>As before, assume that Sally and you both have working
+ <para lang="en">As before, assume that Sally and you both have working
copies of the <quote>calc</quote> project. Specifically, you
each have a working copy of <filename>/calc/trunk</filename>.
All the files for the project are in this subdirectory rather
@@ -99,7 +158,15 @@
<quote>main line</quote> of development is going to take
place.</para>
- <para>Let's say that you've been given the task of performing a
+ <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>.
+ 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
problem here is that you don't want to interfere with Sally, who
@@ -109,7 +176,15 @@
start committing your changes bit-by-bit, you'll surely break
things for Sally.</para>
- <para>One strategy is to crawl into a hole: you and Sally can stop
+ <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
+ 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>
+
+ <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
commit or update until you're completely finished with the task.
@@ -133,18 +208,51 @@
copy—especially if you run <command>svn update</command>
after weeks of isolation.</para>
- <para>The better solution is to create your own branch, or line of
+ <para>Una strategia è ?crawl into a hole?: voi e Sally smettete
+ di condividere le informazioni per una settimana o due.
+ Proprio così, cominciate ??gutting? e riorganizzare tutti i file
+ nella vostra copia di lavoro ma senza commit oppure update finché
+ non avrete complettamente finito il vostro lavoro.
+ C'è un numero di problemi con questo, ??though?. Prima, non è
+ 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
+ (magari avete le copie di lavoro del <filename>/calc/trunk</filename>
+ su due macchine differenti), 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
+ nel sviluppo del software è permettere a vostri compagni di vedere
+ il vostro lavoro man mano come procede. Se nessuno vede i vostri
+ commit intermediari, avete perso potenziale ??feedback?.
+ 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
+ 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
you can still selectively share information with your
collaborators. You'll see exactly how this works later
on.</para>
+ <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,
+ 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>Creating a Branch</title>
+ <title>Creare un ramo</title>
- <para>Creating a branch is very simple—you make a copy of
+ <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
single files, but whole directories as well. In this case,
@@ -160,11 +268,29 @@
begins its life as a copy of
<filename>/calc/trunk</filename>.</para>
- <para>There are two different ways to make a copy. We'll
+ <para>Creare un ramo è molto semplice—fatte una copia di progetto
+ in deposito usando il comando <command>svn copy</command>.
+ Subversion è capace non solo di copiare i singoli file,
+ ma anche intere cartelle. Nel nostro caso, volete fare una copia
+ della cartella <filename>/calc/trunk</filename>. Dove la mettiamo?
+ Ovunque dove volete—è ??matter? di politica del progetto.
+ Diciamo che il vostro team ha stabilito la politica di creare rami
+ nella area del deposito <filename>/calc/branches</filename>,
+ 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>
+
+ <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
+ 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/
@@ -175,10 +301,13 @@
Checked out revision 340.
</screen>
- <para>Making a copy is now simply a matter of passing two
+ <para lang="en">Making a copy is now simply a matter of passing two
working-copy paths to the <command>svn copy</command>
command:</para>
+ <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
@@ -186,7 +315,7 @@
A + branches/my-calc-branch
</screen>
- <para>In this case, the <command>svn copy</command> command
+ <para lang="en">In this case, the <command>svn copy</command> command
recursively copies the <filename>trunk</filename> working
directory to a new working directory,
<filename>branches/my-calc-branch</filename>. As you can see
@@ -201,16 +330,33 @@
than resending all of the working copy data over the
network:</para>
+ <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>,
+ 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>
+ 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
Committed revision 341.
</screen>
- <para>And now the easier method of creating a branch, which we
+ <para lang="en">And now the easier method of creating a branch, which we
should have told you about in the first place: <command>svn
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
+ 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 \
@@ -219,7 +365,7 @@
Committed revision 341.
</screen>
- <para>There's really no difference between these two methods.
+ <para lang="en">There's really no difference between these two methods.
Both procedures create a new directory in revision 341, and
the new directory is a copy of
<filename>/calc/trunk</filename>. This is shown in <xref
@@ -236,15 +382,31 @@
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>
+ <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
+ copiare elementi solo dentro lo stesso deposito.</para>
+ </footnote>
+ 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>Repository with new copy</title>
+ <title>Deposito con la nuova copia</title>
<graphic fileref="images/ch04dia3.png"/>
</figure>
<sidebar>
- <title>Cheap Copies</title>
+ <title>Le copie economiche</title>
- <para>Subversion's repository has a special design. When you
+ <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
duplicate any data. Instead, it creates a new directory
@@ -257,7 +419,19 @@
links to the original files in the original
directory.</para>
- <para>This is why you'll often hear Subversion users talk
+ <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à
+ non dupplica nessun dato. Al posto di copia crea solo nuova voce
+ nella cartella, che punta su albero <emphasis>esistente</emphasis>.
+ Se siete utenti di Unix, questo è lo stesso concetto di
+ hard-link. Da qui in poi, la copia è, diciamo, <quote>pigra</quote>.
+ Proprio così, facendo commit di qualche cambiamento di un file
+ 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
amount of time to make a copy of it. In fact, this feature
@@ -268,22 +442,42 @@
the <quote>bubble up</quote> method in Subversion's design
documents.)</para>
- <para>Of course, these internal mechanics of copying and
+ <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
+ 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 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 inteno 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
+ che volete.</para>
</sidebar>
</sect2>
<!-- =============================================================== -->
<sect2 id="svn.branchmerge.using.work">
- <title>Working with Your Branch</title>
+ <title>Lavorare con il vostro ramo</title>
- <para>Now that you've created a branch of the project, you can
+ <para lang="en">Now that you've created a branch of the project, you can
check out a new working copy to start using it:</para>
+ <para>Adesso che avete creato un ramo del progetto, potete tirare fuori
+ (check out) una nuova copia di lavoro per comincar ad usarla:</para>
+
<screen>
$ svn checkout http://svn.example.com/repos/calc/branches/my-calc-branch
A my-calc-branch/Makefile
@@ -292,6 +486,15 @@
Checked out revision 341.
</screen>
+ <para lang="en">There's nothing special about this working copy; it simply
+ mirrors a different directory in the repository. When you
+ commit changes, however, Sally won't ever see them when she
+ updates. Her working copy is of
+ <filename>/calc/trunk</filename>. (Be sure to read <xref
+ linkend="svn.branchmerge.switchwc"/> later in this chapter: the
+ <command>svn switch</command> command is an alternate way of
+ creating a working copy of a branch.)</para>
+
<para>There's nothing special about this working copy; it simply
mirrors a different directory in the repository. When you
commit changes, however, Sally won't ever see them when she
@@ -2082,7 +2285,8 @@
<!-- ================================================================= -->
<!-- ================================================================= -->
<sect1 id="svn.branchmerge.summary">
- <title>Summary</title>
+ <!-- <title>Summary</title> -->
+ <title>Sommario</title>
<para>We've covered a lot of ground in this chapter. We've
discussed the concepts of tags and branches, and demonstrated
@@ -2095,9 +2299,12 @@
might manage the organization and lifetimes of branches in a
repository.</para>
- <para>Remember the Subversion mantra: branches and tags are cheap.
+ <para lang="en">Remember the Subversion mantra: branches and tags are cheap.
So use them liberally!</para>
+ <para>Ricordate il mantra di Subversion: rami ed etichette sono a basso costo.
+ Allora usateli liberalmente!</para>
+
</sect1>
</chapter>
More information about the svnbook-dev
mailing list