SVN Branch

Svn Branch con Netbeans
G.Morreale

Introduzione:


Il branch serve a creare delle linee di sviluppo parallele.



Se, ad esempio, sviluppiamo un software e a un certo punto viene richiesto di implementare una feature sperimentale ma vogliamo mantenere la versione principale disponibile per gli altri sviluppatori che ogni tanto si trovano a risolvere dei bug.
In questo caso si crea un branch e si implementa la feature sperimentale sul branch stesso. Gli altri sviluppatori, che lavorano sulla linea principale, non saranno "disturbati" dalle modifiche effettuate sul branch riguardanti la feature sperimentale richiesta.
Se alla fine si decide di rendere la feature sperimentale disponibile sulla linea principale si procede con un operazione di merge, al fine di fondere la linea principale con il branch.

La linea principale prende il nome di Trunk (tronco)
Le linee parallele sono i branch.

Netbeans e i Branch.
(Articolo relativo a Netbeans 6.1)

Netbeans consente di interagire con svn attraverso un integrazione nell'ide.
I comandi da utilizzare per lavorare con i branch sono

  • CopyTo - Copia l'intero progetto o un singolo file/package su un altra directory(creando il branch).
  • SwitchTo - Serve a indicare con quale branch (o trunk) si intende lavorare.
  • Merge Changes - Serve a fondere diversi branch(o trunk).



Esempio

(L'esempio presuppone la configurazione di svn sul proprio netbeans ide - vedi http://subversion.netbeans.org/faq/index.html)

Creiamo un progetto java qualsiasi.
Tasto destro sul progetto - Versioning - Import into Subversion Repository

Impostare url, nome utente e password.
Riguardo la repository folder: cliccare su browse, scegliere la directory il cui nome corrisponde a quello del progetto, cliccare su "Into new folder" e creare la directory trunk. Conferma l'operazione.

Si è creata la linea principale.

Adesso procediamo creando il branch.

nota:
Ogni operazione: copy to, switch to copy, update, commit può essere relativa all'intero progetto o a un singolo elemento(File ad esempio)

Tasto destro su un file di progetto sul quale si intende effettuare il branch e i relativi test.
Scegliere Subversion -> Copy To, 
Cliccare su browse, Creare cliccando su "Into new folder" la directory branches nello stesso livello di trunk, Creare un altra directory all'interno con il nome del branch (es. branch1), Confermare cliccando su ok.

Con quest'ultima operazione si è creato il branch, ovvero una linea di sviluppo parallela equivalente a quella attuale, ma al momento l'ide effettuera tutte le varie operazioni (Es. update, commit) sul trunk e non sul branch.

Per attivare il branch quindi, usare il comando Switch to Copy sul file spostato sul branch e selezionare il branch precedentemente creato.

Da ora in poi si lavora sul branch e non sulla linea principale.

nota:
Tale operazione è stata effettuata sul singolo file, quindi le operazioni svn sul file sul quale si è finora operato saranno effettuate sul branch, mentre gli altri file continueranno a lavorare sul trunk

Per capire su quale branch si lavora, è possibile attivare la visualizzazione del branch, cliccando su View -> Show Versioning label.

E' possibile adesso effettuare delle modifiche sul file(es. scrivendo "modifica branch 1").
Effettuare il commit.
Effettuare lo switch copy to sulla linea principale e verificare che la modifica riportata sul branch1 non è presente.

Per verificare l'operazione di merging del branch con la linea principale è possibile usare il comando "Merge Changes"
Selezionare il branch1 e cliccare su merge.
Adesso il file in questione conterrà anche le modfiche del branch.


Conclusione

Vi invito a leggere http://svnbook.red-bean.com/ al fine di approfondire le varie nozioni relative a questo utilissimo tool per il controllo di versione.


Riferimento:



No comments: