2013-08-15 21 views
6

Nel svn book si dice merge 's --reintegrate è "unire tutte le modifiche dell'URL di origine nella copia di lavoro ".Qual è la differenza tra "svn merge --reintegrate" e svn merge senza reintegrare se vorrei unire un ramo sul tronco

Vorrei unire un ramo al tronco. Some places dire che è "assolutamente necessario" chiamare lo reintegrate durante l'unione e quindi immediatamente dopo il delete the branch, il che credo sia una seccatura. Other places non menzionare affatto la reintegrazione. Ho svn 1.6.11.

Quindi non sono sicuro di cosa fare ora.

risposta

10

Un sincronizzazione unire è qualcosa di completamente diverso rispetto a un reintegrazione fondersi. Il primo viene utilizzato per unire tutte le modifiche apportate sul ramo principale al ramo di destinazione (in genere un ramo di funzionalità), che non sono già state unite. Quest'ultimo è usato per unire un ramo (caratteristica) nel ramo genitore. Fondamentalmente ciò significa che viene creato un clone temporaneo del ramo (feature), una fusione di sincronizzazione viene eseguita dal ramo padre al ramo temporaneo e infine il ramo padre viene sostituito dal ramo temporaneo. In altre parole, il ramo temporaneo contiene tutte le modifiche apportate al ramo (feature) e al ramo padre.

Per qualche motivo, alcuni sviluppatori non capiscono la differenza. Pertanto, gli sviluppatori SVN hanno rimosso l'opzione --reintegrate in SVN 1.8. Con questa versione, lo strumento rileva automaticamente se deve essere utilizzata una fusione di sincronizzazione o .

Se si utilizza una versione precedente, è necessario utilizzare l'opzione --reintegrate per unione di reintegro. Si noti che il ramo (feature) può ancora essere utilizzato dopo il reintegro, se si tiene a mente alcune cose. Il libro SVN spiega bene:

+0

"sync merge" è solo la semplice "unione", ovvero "unione" senza "--reintegrate"? –

+0

Sì, un _sync merge_ è il valore predefinito - senza '--reintegrate',' -c' e '-r'. – nosid

2

aggiornamento a svn 1.8 e non worrry parla più, sarà capire automaticamente che cosa fare.

dal svn 1.8 release notes:

Durante unioni che si fondono tutte le revisioni ammissibili da un altro ramo, Subversion 1.8 deciderà automaticamente se l'unione è reintegrare un ramo. Pertanto, il reinserimento di un ramo non richiede più l'opzione --reintegrate per il corretto funzionamento.

+0

Avrei ancora bisogno di cancellare il ramo dopo l'unione (unire --reintegrate)? –

+1

Non è necessario eliminare il ramo dopo un reintegro se si segue [questo piccolo passaggio] (http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html#svn.branchmerge. advanced.reintegratetwice). Non so perché Subversion non lo fa automaticamente per te. –

Problemi correlati