2013-08-19 17 views
22

Ho un ramo che sto facendo le modifiche separatamente. Altri compagni di squadra che eseguono i cambiamenti nel bagagliaio. Lo scenario è, ora voglio dare una versione che include gli aggiornamenti del bagagliaio + i miei aggiornamenti sulle filiali. Poiché non ho ancora completato il modulo completo, non voglio unire il ramo al trunk. Invece voglio creare un altro nuovo ramo dal tronco e quindi unire le modifiche del ramo al nuovo ramo. In modo che possa avere il nuovo ramo completamente aggiornato con i miei aggiornamenti di ramo + aggiornamenti di tronco più recenti.Unisci due rami usando la tartaruga SVN

sto usando tortoisesvn merge e questo è quello che ho fatto:

Diciamo che nel bagagliaio è presente un file appena aggiunto: A, che non sta avendo nel mio ramo. Quindi il ramo appena creato ha anche il file A. (Ho usato l'opzione di unione: "Unione di due alberi diversi") Vado alla nuova cartella di diramazione e ho dato quell'URL al campo [FROM] e ho dato l'URL del mio ramo per [ TO] campo. Quando ho fatto l'unione, elimina un file dalla copia locale. Apparentemente quello che capisco è che la fusione ha portato il nuovo stato filiale al mio stato filiale, invece di integrare le modifiche.

Quello che voglio è unire le mie modifiche di ramo al nuovo ramo, senza perdere le ultime modifiche che il nuovo ramo sta avendo. In modo che io possa avere il nuovo ramo: ultime modifiche al tronco + i miei cambi di ramo.

Come fare questo?

+0

Questo è il tuo attuale svn, (trunk == newbranch). Ora vuoi unire il tuo ramo di lavoro (sai che le revisioni specifiche (da 200 a 266 e 290, 293) devono fondersi.Per favore, confimi sono le condizioni preliminari per procedere ulteriormente? – Ashif

+0

Sì Olive. Voglio unire i miei lavori di ramo al nuovo ramo, che è una copia esatta del tronco, per favore citare la procedura passo-passo per farlo: –

risposta

2

vorrei creare un nuovo ramodal tronco e di unire il ramo nella nuova filiale tramite unire un intervallo di revisioni. Poiché il nuovo è il nuovo , tutto dovrebbe funzionare correttamente.

+0

Sì Micha, questo è quello che ho fatto inizialmente, ma poiché il tronco si stava aggiornando mentre io facevo lo sviluppo nel mio ramo, non A mio parere, se il trunk non si aggiornava, mentre il mio ramo funziona, allora questo metodo funziona bene –

+0

Dovrebbe funzionare, non importa se il trunk è aggiornato o meno, a causa della nota svn-relationship.Sì, è possibile ricevere conflitti, ma in pratica dovrebbe funzionare. Prima di reinserire un ramo nel bagagliaio unisco il tronco del modulo degli aggiornamenti al ramo e al ramo (con le nuove funzionalità) nel trunk. Questo mi aiuta ad arrivare a molti conflitti. – Micha

46
Perform fresh checkout of your repository 
Precondition:(Suppose your repository name: Team) 
1. You have trunk(Main Dev) 
2. You have branch (Your changes) 
3. Create say "newbranch" from trunk.[ TortoiseSVN->Branch/tag][ Picture1 }Note:Select Head revision 

enter image description here

4. Perform svn Update inside "Team"->So newBranch is updated.[picture2] 

enter image description here

5. Now, select newbranch and merge[Tortoisesvn->Merge][Picture3] 

enter image description here

6. Select default "Merge a range of revision", to select revisions which you only intrested to merge.[[Picture4] 

enter image description here

7. Click, showlog to select required revisions you intrested on[picture5] 

enter image description here

Finaly merge is completed[picture6] 

enter image description here

** Nota: Se i conflitti si imbatte, quindi unire le revisioni di conflitto manualmente.

+1

Come unire "newbranch" nel "tronco" dopo che è stato completato il QA? – bsobaid

+0

Dovresti prima unire tutte le modifiche dal tronco al ramo usando l'opzione 'unisci un intervallo di revisioni', e poi, una volta fatto, unisci due alberi diversi, scegliendo il tronco come 'da' e il ramo come la tua revisione 'a'. – keithl8041

+0

Bella risposta. Il 'newBranch 'non dovrebbe essere in ** rami **? :) –