Come posso creare un ramo in SVN?

Come posso creare un ramo in SVN?

La ramificazione in Subversion è facilitata da una funzione di copiatura molto molto leggera ed efficiente.

Branching e tagging sono effettivamente gli stessi. Basta copiare un’intera cartella nel repository in un altro posto nel repository usando il comando svn copy .

Fondamentalmente questo significa che è per convenzione che cosa significa copiare una cartella – che si tratti di un backup, di un tag, di un ramo o di qualsiasi altra cosa. A seconda di come vuoi pensare alle cose (normalmente a seconda dello strumento SCM che hai usato in passato) devi configurare una struttura di cartelle all’interno del tuo repository per supportare il tuo stile.

Gli stili comuni devono avere una serie di cartelle nella parte superiore del repository chiamata tags , branches , trunk , ecc. Che consente di copiare l’intero trunk (o sottoinsiemi) nelle cartelle tags e / o branches . Se hai più di un progetto, potresti voler replicare questo tipo di struttura sotto ogni progetto:

Ci può volere un po ‘per abituarsi al concetto – ma funziona – basta assicurarsi che tu e il tuo team siano chiari sulle convenzioni che userete. È anche una buona idea avere una buona convenzione di denominazione – qualcosa che ti spieghi perché è stato creato il branch / tag e se è ancora appropriato – prendere in considerazione modi di archiviare i rami che sono obsoleti.

Subversion rende facile (alcuni pensano troppo facile) creare un nuovo ramo usando il comando svn copy.

 $ svn copy svn+ssh://host.example.com/repos/project/trunk \ svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH \ -m "Creating a branch of project" 

Se il repository è disponibile tramite https, puoi usare questo comando per diramare …

 svn copy https://host.example.com/repos/project/trunk \ https://host.example.com/repos/project/branches/branch-name \ -m "Creating a branch of project" 
 svn cp /trunk/ /branch/NEW_Branch 

Se si dispone di alcune modifiche locali nel trunk, utilizzare Rsync per sincronizzare le modifiche

 rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch 

Normalmente lo copi in svn + ssh: //host.example.com/repos/project/branches/mybranch in modo da poter mantenere diversi rami nel repository, ma la tua syntax è valida.

Ecco alcuni consigli su come impostare il layout del tuo repository .

Supponiamo di voler creare un ramo da un nome di tronco (come “TEST”) quindi utilizzare:

 svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST 

Se hai intenzione di fondere il tuo ramo, ti consiglio caldamente di dare un’occhiata a questo:

Svnmerge.py

Ho sentito che Subversion 1.5 costruisce più del tracciamento delle unioni, non ho esperienza con questo. Il mio progetto è su 1.4.x e svnmerge.py è un risparmiatore di vita!

Suggerimento per i nuovi utenti SVN; questo può aiutare un po ‘a ottenere rapidamente gli URL corretti.

Esegui svn info per visualizzare informazioni utili sul ramo di estrazione corrente.

L’URL dovrebbe (se si esegue svn nella cartella radice) fornire l’URL da cui copiare.

Anche per passare al ramo appena creato, utilizzare il comando svn switch :

 svn switch http://my.repo.url/myrepo/branches/newBranchName 
  • Crea una nuova cartella al di fuori del tuo attuale progetto. Puoi dargli qualsiasi nome. (Esempio: hai un checkout per un progetto chiamato “Personalizzazione” e ha molti progetti, come “Progetto1”, “Progetto2” …. E vuoi creare un ramo di “Progetto1″. Quindi apri prima il ” Personalizzazione “, fare clic con il tasto destro e creare una nuova cartella e dargli un nome,” Project1Branch “).
  • Fare clic destro su “Myproject1” …. TortoiseSVN -> Branch / Tag.
  • Scegli la copia di lavoro.
  • Apri browser …. Giusto a destra di “To URL”.
  • Seleziona la personalizzazione ….. fai clic con il pulsante destro del mouse, quindi Aggiungi cartella. e passa attraverso la cartella che hai creato. Qui è “Project1Branch”. Ora fai clic sul pulsante OK per aggiungere.
  • Fai il checkout di questo nuovo banch.
  • Di nuovo vai al tuo progetto su quale ramo vuoi creare. Fare clic con il tasto destro del mouse su TorotoiseSVN -> branch / tag. Quindi selezionare la copia di lavoro. E puoi dare l’URL come nome del tuo ramo. come {il tuo indirizzo IP / svn / AAAA / Personalizzazione / Project1Branch}. Ed è ansible impostare il nome nell’URL in modo che crei solo la cartella con questo nome. Come {Il tuo indirizzo IP / svn / AAAA / Personalizzazione / Project1Branch / MyProject1Branch}.
  • Premere il tasto OK. Ora puoi vedere i log in … la tua copia di lavoro verrà archiviata nel tuo ramo.
  • Ora puoi fare il check-out … e goderti il ​​tuo lavoro. 🙂