2012-10-22 4 views
0

J'ai une question à propos de la fusion dans Subversion. J'ai donc un coffre puis deux branches qui viennent du coffre. Alors disons que j'ai un tronc puis la branche A qui a été créée à partir du tronc et ensuite la branche B a été créée à partir du tronc. Disons alors que j'ai fait des changements à B, puis change au tronc puis fusionné le tronc change en B et vérifié dans la branche B. Je veux maintenant fusionner à la branche A, pas au tronc. Est-ce possible de simplement fusionner la branche B en branche A? Ou dois-je d'abord fusionner la branche B au tronc puis à la branche A?Fusion de branches SVN

+0

Certainement c'est possible. Les révisions sont juste des changements dans les fichiers, pas de magie là qui vous empêche de faire les choses. La question est: quels changements voulez-vous fusionner dans la branche A? – arkascha

+0

Je veux fusionner toutes les modifications disponibles sur la branche B depuis sa création et depuis la création de la branche A. Comme je l'ai mentionné ci-dessus, la succursale B est actuellement à jour avec TRUNK. –

+0

Alors allez-y: essayez d'imaginer ce que la commande svn merge exprime: "reprendre toutes les modifications qui sont arrivées à l'URL spécifiée de la révision' a' à la révision 'b'". Simple. Pas de magie autour. Rappelez-vous toujours que le concept de «branche» ou de «coffre» n'a aucune signification technique. Ce sont juste des noms, c'est tout. – arkascha

Répondre

0

Vous pouvez fusionner les branches souhaitées

0

Vous pouvez fusionner les révisions individuellement dans SVN. Donc oui, il suffit de sélectionner les révisions que vous souhaitez fusionner de B à A et cela devrait fonctionner correctement. S'il manque à A des fichiers présents dans B et que vous n'avez pas encore fusionné leurs ajouts, vous risquez d'obtenir un conflit d'arborescence. Vous pouvez les effacer en fusionnant les fichiers manquants au point où ils ont été ajoutés à l'origine à B.

+0

Oui, je vois des conflits d'arbres. Disons que je suis sur la branche A maintenant. Je peux voir la première révision sur la branche B en exécutant svn log --stop-on-copy brancheB et quelle que soit la révision que je vois, alors je dois juste lancer "svn merge -r rev #: HEAD http: // url/branches/brancheB "(en supposant que im dans l'espace de travail de brancheA). –

+0

Les conflits d'arborescence sont généralement un signe que quelque chose est fusionné qui n'est pas présent ou a été supprimé depuis dans la branche cible. Ergo, vous ne pouvez pas fusionner les modifications en quelque chose qui n'est pas présent dans l'historique des révisions. Essayez de résoudre le conflit en vous assurant que votre branche source coïncide entièrement avec votre branche cible en ce qui concerne la structure du fichier, puis fusionnez si nécessaire les révisions qui ont ajouté ou supprimé les fichiers dont le conflit d'arbre se plaint. – Zoltan