SVN - impossible de fusionner la branche dans le coffre - nombreux conflits d'arbres

StackOverflow https://stackoverflow.com/questions/1008681

  •  06-07-2019
  •  | 
  •  

Question

J'ai ce que je pensais être un scénario simple - en utilisant TortoiseSVN:

1) J'ai créé une branche (B2) d'une application (pour implémenter des images-objets et JAWR).

2) Test & amp; le développement s'est déroulé normalement sur le tronc.

3) Au cours des derniers jours, j'ai réorganisé la succursale à quelques reprises:

3.1) Jonction fusionnée (par plage de révisions) à ma copie de travail branch-b2, résolution des conflits lors de la fusion.

3.2) (après avoir testé branch-b2), je valide la branche b2 modifiée.

Tout cela a fonctionné comme prévu. Mais fusionner la branche dans le coffre a son chemin avec moi:

4) Après toutes les mises à jour validées dans branch-b2; Je m'assure de faire une mise à jour SVN sur trunk and branch-b2.

5) Ensuite, j'essaie de fusionner (plage de révisions) de branch-b2 dans le coffre. Cependant, pour tout nouveau fichier ajouté au tronc, puis ajouté à branch-b2 lorsque je le rebasonne, j'obtiens un conflit d'arborescence. Je ne sais pas quelle est la bonne façon de résoudre ces conflits.

Le conseil le plus typique que j'ai vu est de supprimer les fichiers en conflit d'arborescence du tronc, puis de fusionner la branche. ou supprimez l'intégralité du coffre, copiez les fichiers de branche, puis validez-les en tant que nouvelle version dans le coffre. Aucune de ces options ne semble être une bonne idée - la première est une douleur, et les deux semblent vouloir perdre l'historique de révision des fichiers.

Qu'est-ce que je fais de mal et comment puis-je résoudre le problème?

Était-ce utile?

La solution

On dirait que vous utilisez le style de fusion pré-1.5 et que vous essayez de réintégrer la branche dans le tronc. Dans ce cas, vous souhaitez tout d'abord vous assurer que toutes les modifications apportées au réseau ont été fusionnées dans la branche, puis au lieu de fusionner les branches avec une copie de travail pointant sur le coffre, vous souhaitez fusionner & FROM; trunk @ HEAD TO branch @ HEAD " avec la copie de travail pointant vers le coffre. En substance:

"Donnez-moi tous les changements nécessaires pour que le tronc soit identique à celui de la branche".

Cela fonctionne si vous avez déjà fusionné toutes les modifications apportées au tronc de la branche, car la seule différence entre tronc et branche sont les modifications apportées à la branche.

Avez-vous du sens? :)

Autres conseils

J'ai étudié le même problème. C'est & feature; feature " en tortue SVN 1.6.5. TortoiseSVN 1.5 fonctionne bien avec notre dépôt (SVN 1.5). TortoiseSVN 1.6.5 lors du changement de base ajoute les fichiers de la chaîne principale en tant que NOUVEAU (sans enregistrer l'historique de fusion).
Et la réintégration des filiales dans le traitement de ces fichiers comme étant en conflit avec Mainline.

J'ai résolu le problème en utilisant la fonctionnalité de TortoiseSVN 1.6 "Réintégrer la branche". Il est spécialement conçu pour les branches de fonctionnalités.

- Alexey Korsun

Voici un peu plus d’informations pour contribuer à la réponse de @Rytmis qui m’aide à garder cela droit.

Étapes générales consistant à rendre le coffre exactement comme une branche ou une étiquette:

  1. Paiement à partir du coffre.
  2. À l'aide d'une copie de travail du tronc, fusionnez d'un tronc à une branche / balise.
  3. Commit.

Exemple de commandes de ligne de commande 'svn':

svn checkout <trunk url>
cd trunk
svn merge <trunk url> <branch/tag url>
svn commit -m "<message>"

Je ne comprenais pas vraiment comment la solution ci-dessus fonctionnait alors mon travail est différent. Je me suis d'abord assuré que la branche contenait toutes les modifications du tronc.

1) J'ai reçu une nouvelle copie du coffre. 2) J'ai exporté la branche vers un emplacement temporaire à l'aide de la tortue svn export. 3) J'ai utilisé l'explorateur Windows pour copier l'intégralité de l'arbre des branches sur le tronc et écrasé tous les fichiers. 4) J'ai utilisé la commande de vérification des modifications sur Tortoise et inclus la case à cocher Tous les fichiers non envisagés. 5) J'ai sélectionné tous les fichiers et cliqué sur Ajouter.

Vous devez utiliser des solutions qui n'ont pas été générées afin que les fichiers non envisagés n'incluent pas la sortie.

Je ne peux pas attendre que nous passions à la version 1.5 +

Sélectionnez les révisions à fusionner en sélectionnant "Fusionner une plage de rivifications". option utilisant TortoiseSVN. Cela empêchera les conflits d'arborescence pour les mêmes fichiers de se reproduire à chaque opération de fusion.

Je pense avoir résolu ce problème. 1. Cliquez avec le bouton droit de la souris sur "branche". que vous avez fusionné. 2. Cliquez sur Tortoise SVN > > Fusionner 3. "Fusionner une plage de révisions". et ensuite 4. !!! VÉRIFIEZ "Fusion inversée" !!!   , URL à fusionner à partir de "branche", "plage spécifique", "révision récemment fusionnée", et sur 5. Suivant 6. SVN Commite

Après cela, je peux fusionner d'une branche à une autre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top