2012-04-15 7 views
16

Il libro stati SVN il seguente:SVN reintegrare stesso ramo al tronco più volte

Dopo aver eseguito un reintegrare fusione non si dovrebbe continuare a utilizzarlo per lo sviluppo. La ragione di ciò è che se provi a risincronizzare il ramo esistente dal trunk in seguito, unisci il rilevamento vedrai il tuo reintegro come una modifica del tronco che non è stata ancora unita nel ramo e proverà a unire il ramo- to-trunk fondersi nuovamente nel ramo! La soluzione a questo è semplicemente creare un nuovo ramo dal trunk per continuare la fase successiva del tuo sviluppo.

Nel mio caso, voglio continuare a utilizzare il ramo dopo il reinserimento nel tronco e continuare a reinserirlo nel tronco più volte. Ho fatto questo e ho incontrato due problemi principali:

  1. Continuo a ricevere i conflitti strano albero quando provo reintegrare.
  2. continuo a ricevere un messaggio che dice qualcosa come "Reintegrazione può essere utilizzato solo se le revisioni 280 attraverso 325 erano in precedenza"

Come faccio ad avere questo problema se voglio essere in grado di reintegrare da un ramo più volte?

+3

Quindi il libro dice "non farlo", ma lo vuoi ancora fare? Non ha senso. Basta creare nuovi rami dal tronco dopo il reintegro, come si dice ... – Torious

+0

Ho un problema simile. Voglio spingere le correzioni dal mio ramo nel bagagliaio per tutto il percorso, ma NON reintegrare. Sfortunatamente, 1.8 si reintegra automaticamente, anche se non lo vuoi. Non riesco a creare un nuovo ramo, poiché tutti i rami di tutti gli altri progetti hanno lo stesso nome di ramo. Il mio problema è, a) ora ho fatto questo, non so come annullarlo. b) come posso unirmi in futuro senza reintegrare? Questa non è un'opzione - reintegrare di nuovo. Ho guardato a --record-only, ma questo non ha senso per questo caso? –

risposta

19

È possibile utilizzare la --record solo unire opzione come spiegato nel libro SVN, sezione Keeping a Reintegrated Branch Alive

Si noti che da Subversion 1.8, questo non è più necessario, come automatic reintegration merge è stato introdotto.

+0

Se voglio solo unirmi dal ramo al tronco e mai dall'altra parte, posso reintegrare più volte il ramo? Devo fare il trucco --record-only? – Vincent

+1

Sì, è possibile. Su Subversion 1.7 devi fare il trucco --record-only, mentre su Subversion 1.8 non hai bisogno di --reintegrate o --record-only – rlovtang

+0

La versione è quella del client o del server o entrambi? – Vincent

2

Ho visto una serie di soluzioni temporanee su Google ma mi hanno reso nervoso come "hack". Per affrontarlo ho deciso di fare solo ciò che la sovversione sta suggerendo nel messaggio. Tornai al mio ramo ed esplicitamente fuso le revisioni specificate:

~/python/orb $ svn merge -r 650:693 https://paulwhippconsulting.slsapp.com/source/orb/trunk 
~/python/orb $ svn commit -m 'merged revisions 650:693 from trunk' 
Sending  occl 

Committed revision 695. 

Una volta che ho fatto questo, sono stato in grado di tornare alla copia di lavoro del tronco e reintegrare il ramo senza problemi.

Spero che questo aiuti