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 “tweaked” for them, since they do things slightly differently.
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 «modificate» per loro, perché in quel dipartimento le cose fanno in modo legermente diverso.
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.
Che cosa fatte in questa situazione? Una cosa ovvia: fatte la seconda copia del vostro documento e cominciate mantenere le due copie separatamente. Quando uno o altro dipartimento chede di fare modifiche, voi le fatte nell'una o l'altra copia.
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.
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, differiscono solo nelle piccole, specifiche parti.
This is the basic concept of a branch—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 branch always begins life as a copy of something, and moves on from there, generating its own history (see Figura 4.1, «Rami di sviluppo»).
Questo è il concetto base di ramo—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 prosegue da questo punto generando la sua propria storia (vedi Figura 4.1, «Rami di sviluppo»).
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 from one branch to another. Finally, it can make portions of your working copy reflect different branches, so that you can “mix and match” different lines of development in your daily work.
Subversion ha i comandi per aiutarvi mantenere rami paralleli di vostri file e cartelle. Vi permette di creare rami copiando i vostri dati 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 «mescolare e abbinare» le linee diverse dello sviluppo nel vostro lavoro giornaliero.