Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Creazione di un ramo

Trasformare un repository semplice in un progetto con più rami
Trasformare un repository semplice in un progetto con più rami
Link copiato negli appunti

Partiamo innanzitutto con una nota sulla denominazione delle cartelle del nostro progetto. Se prevediamo che il nostro repository possa avere più rami, è bene inserire al primo livello del repository due sottocartelle separate, una che contiene il ramo principale e una che contiene gli altri rami.

Per convenzione, la cartella del ramo principale viene chiamata trunk e la cartella dedicata ai rami viene tipicamente chiamata branches. Si tratta solo di convenzioni, dunque possiamo sostituire i nomi a nostro piacimento, ma rispettare degli standard di nomenclatura usati in tutto il mondo non è una cattiva idea.

La struttura ideale per il nostro repository diventa dunque:

  • repos/guidasvn/trunk che contiene la versione originale della mia guida;
  • repos/guidasvn/branches/sistemisti che contiene la versione per sistemisti;
  • repos/guidasvn/branches/programmatori che contiene la versione per programmatori)

Per creare un ramo separato, va usato il comando svn copy:

svn copy URL1 URL2 -m "Messaggio"

che nel nostro caso si declina:

svn copy http://svn.vd-devel/repos/guidasvn/trunk http://svn.vd-devel/repos/guidasvn/branches/sistemisti -m "Creazione ramo separato sistemisti"

Va a questo punto chiarito un concetto importante. Per Subversion non esiste realmente il concetto di rami separati: se creiamo una copia di una cartella, per lui è semplicemente questo: la copia di una cartella. Siamo noi che, potendo fare checkout, update e commit di singole cartelle del repository, lo consideriamo un ramo separato e lavoriamo solo su quello.

Ecco perchè è importante separare le cartelle e dargli una nomenclatura esplicativa: perchè ci serve per assegnare il concetto di "ramo" a quelle che per Subversion sono semplicemente cartelle diverse di uno stesso progetto, che – come tutti gli elementi copiati – condividono lo storico fino al momento della copia.

Trattandosi sempre di uno stesso repository, inoltre, la numerazione delle revisioni rimane comune tra i rami: ad esempio se effettuiamo un commit sul ramo principale e generiamo la revisione 10, il commit successivo sul ramo secondario produrrà la revisione 11.

Spostare un repository già creato

Se abbiamo già messo del contenuto nel repository e vogliamo spostarlo per creare la struttura adeguata ad ospitare rami separati, possiamo utilizzare il comando svn move:

svn move URL1 URL2

Con TortoiseSVN, possiamo avviare il Repository Browser e utilizzare l'opzione Create folder per creare la struttura che ci interessa, e poi trascinare direttamente con il mouse i file già esistenti nella nuova locazione.

Questa operazione non richiede particolare attenzione per essere effettuata, ma è fondamentale che tutti gli utenti ne siano informati. La copia di lavoro locale infatti non può sapere di questo spostamento (che tramite il Repository Browser viene effettuato direttamente sul server) e quindi va aggiornata utilizzando il comando relocate che ci permette di specificare il nuovo URL. In alternativa, si può semplicemente eliminare e ricreare la copia di lavoro.

Ti consigliamo anche