Domanda

Ho un tronco (A) e due rami (B e C). Quando mi fondo A con C il suo OK, dopo mi fondo A con B, il precedente C sua sovrascritto e il mio tronco non hanno le modifiche C.

Quello che voglio è A + B + C in tronco dopo unioni.

A cura maggiori spiegazioni:

  1. Nel bagagliaio Ho 3 file: "FILE 1", "FILE 2" e "FILE 3";
  2. I creare un ramo dal tronco come "Branch 1";
  3. posso passare a "Branch 1", posso correggere i bug in "FILE 1" di file e impegno;
  4. Nello stesso tempo, un'altra persona di creare un ramo dal tronco come "succursale 2";
  5. Questa persona fissare un altro bug in "FILE 2" i file e "FILE 3" e si impegnano;
  6. La "succursale 2" è stato approvato per la pubblicazione, poi ho merge "Branch 2" a "trunk" (il suo ok);
  7. Nel giorno dopo il "ramo 1" è stato approvato, quindi mi fondo "Branch 1" a "tronco", e il "tronco" perdere le modifiche dal "ramo 2".
È stato utile?

Soluzione

  1. Fare una copia di lavoro di trunk
  2. svn merge -r W:X svn://branchA workingCopy
  3. svn merge -r Y:Z svn://branchB workingCopy

Credo che questo vi darà quello che vuoi, che è il tronco più eventuali modifiche apportate da uno dei rami. Si dovrà affrontare i conflitti, tuttavia.

Altri suggerimenti

Supponendo che si sta usando Subversion 1.5 o superiore, credo che si vuole "reintegrare" tuoi rami di nuovo al tronco, vedere http://blog.red-bean.com/sussman/?p=92

Il tuo terminologia non è chiaro. Quando si dice "fondersi A con B" significa che si uniscono A in B o B in A? Può spiegare esattamente quello che hai fatto per creare i rami, e come ha tentato di fare la fusione? Inoltre, per la fusione è importante quale versione SVN che si sta utilizzando.

Vi suggerisco di leggere con attenzione il capitolo sulla ramificazione e la fusione nel libro SVN.

In sostanza, quando si ha un ramo di caratteristica (che è quello che sembrano avere), è più volte unire il ramo in esso. SVN registra quindi che le revisioni si fuse e non unirle di nuovo. Quando hai finito con il vostro ramo, si reintegrare in tronco e respingerlo.

Tutto questo viene fatto sul disco, un ramo alla volta, per risolvere i potenziali conflitti dopo ogni ramo, e il check-in ogni passo. (Se per qualche motivo è necessario applicare le modifiche al tronco in un unico check-in, è possibile unire i rami in un ramo fresco fuori il tronco e quindi unire quel ramo nel bagagliaio quando hai finito.)

Si desidera applicare le unioni per l'area di lavoro, non il repository. In alternativa è possibile utilizzare cvs che si occupa con i rami in modo di gran lunga superiore rispetto svn fa.

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