Domanda

deve un ramo di caratteristica essere eliminato dopo che è fusa (reintegrato) torna al tronco?

Io preferisco di unire costantemente cambiamenti avanti e indietro dal mio ramo di caratteristica - Credo che questo mantiene i conflitti al minimo. Eppure mi sembra di capire che una volta che si utilizza l'unione reintegrare al tronco, un ramo di caratteristica dovrebbe essere soppresso.

E 'così? Perché? Cosa posso fare per evitare questo?

Aggiorna Mi sto chiedendo di problemi tecnici che provengono dallo strumento, non "riguarda Methodology". Ho intenzione di continuare a lavorare sul ramo funzione dopo l'unione.

Aggiorna la risposta superiore specifica infatti una procedura piuttosto complessa (unire, eliminare e rebranch). C'è un modo semplice per ottenere questo risultato in TortoiseSVN? Non dovrebbe esserci?

È stato utile?

Soluzione

modifica :. Questo problema sembra essere stato risolto in SVN 1.8 sezione fusione di base dal SVN 1,8 libro è stato aggiornato per dire che è OK per riutilizzare un ramo di caratteristica. La risposta che segue è rilevante solo per le vecchie versioni SVN.


Dalla sezione sulla fusione di base nel svn libro:

  

In Subversion 1.5, una volta   merge --reintegrate è fatto di ramo in tronco, ramo non è   più utilizzabili per ulteriori lavori. Suo   Non in grado di assorbire correttamente nuovo trunk   modifiche, né può essere correttamente   reintegrato al tronco di nuovo. Per questo   ragione, se si vuole continuare a lavorare su   la vostra caratteristica ramo, si consiglia di   distruggerla e poi ri-creando   dal tronco:

Questo è ancora il caso in SVN 1.6 e 1.7.

eccellente articolo sul unioni riflettenti spiega perché esattamente non si può o non dovrebbe riciclare un ramo di caratteristica. Sintesi dei punti più importanti:

  • si può fare il lavoro per risolvere i conflitti quando reintegrare con il tronco
  • La reintegrazione commettere in tronco quindi contiene entrambe le modifiche proveniente dal ramo di caratteristica e il lavoro di risoluzione dei conflitti
  • Tuttavia, la sovversione non ti aiuterà unire questo lavoro di risoluzione dei conflitti tornare al ramo di caratteristica. semplicemente guarda il mergeinfo e pensa "Questi cambiamenti originariamente provenivano da il ramo di caratteristica, non c'è bisogno di unire di nuovo alla loro origine".

L'eliminazione al ramo della funzione e rebranching è a buon mercato ed evita l'intera questione.

Altri suggerimenti

Lo facciamo spesso (SVN 1.5 e superiori). Devi solo fare in modo di non riemergere quei cambiamenti di nuovo nel ramo.

Per fare questo è sufficiente fare una serie di revisioni si fondono dal tronco al ramo. Specificare la revisione nel bagagliaio che avete fatto la Reintegrazione della filiale e segnare come "registrare Solo l'unione" dal tronco di revisione al ramo.

Una volta fatto questo si dovrebbe essere pronti per partire.

Modifica
Il punto della wcoenen porta in primo piano dal articolo su conflitti è valido. Se non si sincronizzare le modifiche del tronco nel ramo prima di fare la Reintegrazione si avrà il problema di conflitto. Noi mantenere il ramo sincronizzato e abbiamo avuto nessun problema continuando a riutilizzare il ramo dopo più reintegra.

Modifica 2

Mantenere un Reintegrato Branch Alive ( http://svnbook.red-bean.com/en /1.7/svn.branchmerge.advanced.html )

Esiste un'alternativa a distruggere e ricreare un ramo dopo reinserimento. Per capire perché funziona è necessario capire il motivo per cui il ramo è inizialmente non idonei per un ulteriore uso dopo che è stato reintegrato.

Sì, si può fare un disco di sola fondono per mantenere in vita il ramo.

Mantenere un reintegrati ramo vivo nel Subversion libro.

Subversion 1.8 consente di unire più volte avanti e indietro tra due rami, mentre le versioni 1.7 e precedenti non ha fatto. Leggi la nota stampa qui: http://subversion.apache.org /docs/release-notes/1.8.html#auto-reintegrate.

Questa Tutto dipende dalla vostra opinione personale, e dal numero di persone che si fondono in tronco.

Se si dispone di un sacco di gente che si fondono in, allora è probabilmente meglio unire solo un ramo una volta che è finito con, e poi a eliminarlo (si può sempre accedervi tornando all'ultima revisione in cui è esistito ). Se si tenta di unire in modo continuo in questa situazione sarà solo confondere te stesso.

Tuttavia, se non si dispone di molti sotto-rami, e se si utilizza la sovversione 1.5+, è possibile ottenere via con questo, e può aiutare ad evitare fondersi conficts.

Naturalmente, se il "tronco" viene utilizzato come un repository candidato / versione beta / release, quindi si sholdn't esegue questa operazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top