2009-11-10 7 views
1

J'ai un tronc (A) et deux branches (B et C). Lorsque je fusionne A avec C son OK, après avoir fusionné A avec B, le C précédent est écrasé et mon tronc n'a pas les changements C.Problème dans SVN fusionner des branches en tronc

Ce que je veux, c'est A + B + C dans le réseau après les fusions.

Edité pour plus d'explications:

  1. dans le coffre j'ai 3 fichiers: "FILE 1", "2 FICHIER" et "FICHIER 3";
  2. Je crée une branche à partir du tronc comme "Branche 1";
  3. Je passe à "Branch 1", je corrige des bugs dans le fichier "FILE 1" et je committe;
  4. Dans le même temps, une autre personne crée une branche à partir du tronc comme "Branche 2";
  5. Cette personne corrige un autre bogue dans les fichiers "FILE 2" et "FILE 3" et valide;
  6. La «branche 2» est approuvée pour publication, puis je fusionne «branche 2» à «tronc» (son ok);
  7. Le jour suivant, le "Branch 1" est approuvé, puis je fusionne "Branch 1" à "trunk", et le "tronc" perd les changements de "Branch 2".
+0

Dans votre explication, n ° 7, qu'est-ce que "votre coffre"? – sbi

+0

@sbi Correction de "ma malle" à "la malle" – Cesar

Répondre

3
  1. Faire une copie de travail de trunk
  2. svn merge -r W:X svn://branchA workingCopy
  3. svn merge -r Y:Z svn://branchB workingCopy

Je pense que cela va vous donner ce que vous voulez, ce qui est le tronc ainsi que toutes les modifications apportées par une branche. Vous devrez cependant faire face à des conflits.

+0

Reintegrate était la solution comme l'a dit @Even. – Cesar

-12

Vous souhaitez appliquer les fusions à votre espace de travail, pas au référentiel. Vous pouvez également utiliser cvs qui traite les branches de manière très supérieure à svn.

+8

"CVS traite les branches d'une manière bien supérieure à SVN" Vous devez tirer nos jambes collectives ici. Ces déclarations valent un -10. Malheureusement, je ne peux que vous donner un -1. – sbi

+0

Je vais vous aider. En outre, l'affiche originale devrait utiliser des arbres. Les arbres traitent les branches de manière bien supérieure à CVS ou Subversion. – Thomas

+2

CVS branchement .... droit qui veut une O (1) ramification de toute façon? –

1

Votre terminologie n'est pas claire. Quand vous dites que vous "fusionnez A avec B" cela signifie-t-il que vous fusionnez A dans B ou B dans A? Pouvez-vous expliquer exactement ce que vous avez fait pour créer les branches, et comment vous avez essayé de faire la fusion? De plus, pour fusionner, il est important de savoir quelle version SVN vous utilisez.

Je vous suggère de lire attentivement le chapter on branching and merging dans le livre SVN. Fondamentalement, lorsque vous avez une branche de fonctionnalité (ce qui est ce que vous semblez avoir), vous fusionnez à plusieurs reprises la branche dans celui-ci. SVN enregistre ensuite les révisions que vous avez fusionnées et ne les fusionnera plus. Lorsque vous avez terminé avec votre branche, vous le réintégrez dans le coffre et le rejeter. Tout ceci est fait sur votre disque, une branche à la fois, résolvant les conflits potentiels après chaque branche, et vérifiant dans chaque étape. (Si, pour une raison quelconque, vous devez appliquer les modifications au tronc en une seule fois, vous pouvez fusionner vos branches en une nouvelle branche du tronc et fusionner cette branche dans le tronc lorsque vous avez terminé.)

+0

J'ai besoin de fusionner B en A et C en A. – Cesar

Questions connexes