2011-09-08 15 views
5

So che esiste l'opzione --reintegrate in Subversion (SVN) 1.6 per unire un ramo di funzionalità al trunk.Reintegrazione al ramo (non al trunk) in Subversion (SVN)

mio flusso di lavoro è un po 'più complessa:

Abbiamo questi rami - ci fondiamo tronco a loro spesso. Ma non li rimettiamo subito nel bagagliaio. Creiamo invece un ramo di rilascio dal tronco e uniamo i rami delle funzioni per rilasciare il ramo. A questo punto abbiamo molti conflitti tra alberi (dal momento che molte modifiche esistono sia nel ramo delle caratteristiche che nel tronco).

L'opzione --reintegrate deve essere d'aiuto in questo scenario, ma sembra che --reintegrate non funzioni quando si esegue l'unione con il ramo diverso dal trunk. È vero?

+1

Quindi non sembra necessario un reinserimento: è stato in grado di risolvere il mio problema dopo aver letto questo: http://designbygravity.wordpress.com/2009/10/19/what-mother-never-told-you-about-svn- branching-and-merging/ – tevch

risposta

4

È una novità per me che non è possibile utilizzare l'opzione --reintegrate su qualsiasi ramo oltre a trunk. Subversion non ha uno standard per la denominazione o il posizionamento di filiali, quindi non è possibile che trunk sia speciale. Per Subversion, branches, trunk e tags sono semplici directory. Queste directory sono speciali per noi solo perché lo dicevamo.

L'opzione --reintegrate ha a che fare con il fatto che se mi fondo di ramo A in ramo B, e poi tenta di unire indietro dal ramo B di espandersi A, potrei essere il tentativo di unire le cose di nuovo al ramo A che era inizialmente nel ramo A. L'opzione --reintegrate consente a Subversion di sapere che sto invertendo la direzione della mia unione e di non considerare le cose nel ramo B che era davvero il risultato dell'unione dal ramo A.

Il reinserimento è un problema in qualsiasi sistema di controllo versione che tiene traccia delle modifiche unite. In ogni caso, non c'è motivo per cui --reintegrate debba coinvolgere un ramo chiamato trunk. Altrimenti, non c'è una reale necessità per l'opzione. Tutto ciò che Subversion deve fare è vedere che ti stai unendo in un ramo chiamato trunk e rendersi conto che probabilmente è una reintegrazione.

+1

Sì, mi trovavo sotto la stessa impressione: il reinserimento non poteva essere limitato, ma non ho mai visto la gente reintegrarsi in altro oltre al trunk, e quando reintegrato nel ramo ottengo questo: svn: '/ svn /! svn/bc/364751//releases/ percorso non trovato – tevch

+0

Quindi sembra che il reinserimento non sia ciò di cui ho bisogno. Ho bisogno di 2 rami funzione uniti per rilasciare il ramo (copia del tronco). Quindi, come faccio a far sapere a svn di non considerare le cose nel ramo R che è stato davvero il risultato dell'unione dal ramo T e di eliminare tutti questi conflitti tra alberi? – tevch

+0

Quindi vai da Trunk-> Feature_branch, quindi Trunk-> Release_branch. Le modifiche nel tronco vengono unite in Feature_branch. Si commettono anche modifiche a Feature_branch. Infine, vuoi unire Feature_branch a Release_branch. Non sono sicuro al 100% che funzioni poiché i due rami non sono direttamente correlati. La fusione di Svn è ancora un po 'debole. Potresti stare meglio usando '--ignore-ancestory'. Iscriviti alla [lista Subversion] (http://subversion.apache.org/mailing-lists.html) e chiedi lì. Questa lista è specializzata in problemi di Subversion e probabilmente ha più esperienza di quella disponibile qui. –

Problemi correlati