web-dev-qa-db-fra.com

Fusionner une branche avec un tronc

À l'aide de TortoiseSVN, je dois prendre les modifications que j'ai apportées dans une branche, puis les fusionner avec le tronc.

Je suis le seul développeur sur ce projet, donc je sais que trunk n'a pas changé. J'apprends le SVN pour que mon équipe puisse éventuellement l'utiliser.

En gros, je veux que ma malle ressemble exactement à la branche.

Dans le monde pré-svn, je voudrais simplement copier les fichiers de mon dossier de branche, supprimer les fichiers du dossier de coffre, puis copier la branche dans le coffre.

Dans TortoiseSVN, j'ai essayé Reintegrate a branch, Merge a range of revisions, et Merge two different trees. Rien ne semble réellement changer de coffre. J'ai également essayé de créer des branches sur le tronc. Cela me donne une erreur, en disant que le coffre existe déjà.

119
Brian Bolton

Dans ton cas:

  1. Basculer la copie de travail sur le coffre (commutateur SVN)
  2. Fusionner la branche dans la copie de travail (Fusion SVN)
  3. Assurez-vous que tout est toujours compilé et fonctionne
  4. Commit la copie de travail (le coffre)
  5. Envisagez de tuer la branche

Dans un environnement d'équipe, je vous suggèrerais de fusionner les dernières modifications du coffre de votre branche, assurez-vous que tout est compilé et fonctionne, puis effectuez les étapes ci-dessus (ce qui sera trivial puisque vous avez déjà testé les modifications).


Mise à jour

À l'étape 5, je mentionne avoir tué la branche. En effet, une fois qu’une branche d’une fonction est dans le coffre, elle doit être considérée comme faisant partie du coffre. Dans ce cas, la branche doit être tuée afin que personne ne continue à travailler dessus. Si des modifications majeures sont nécessaires pour cette fonctionnalité, vous devez créer une nouvelle branche pour cela.

Les seules branches que je ne tue pas sont les branches de maintenance et de version, à moins qu'une version particulière ne soit plus prise en charge.

Quoi qu'il en soit, vous avez toujours accès à chaque révision. Tuer une branche n'est donc utilisé que pour empêcher les autres développeurs de se développer sur une branche morte.

156
mbillard

Je pense dans TortoiseSVN 1.8.5, Fusionner | Fusionner deux arbres différents devrait fonctionner. Lorsque vous fusionnez une branche/étiquette dans une ligne de réseau, le truc, c’est que l’URL de départ est la ligne de réseau et que le À est l’étiquette/la branche. Bizarre mais vrai.

Source: fusion

Pour les répertoires qui ne figurent pas dans votre copie de travail mais dans la balise/branche, des erreurs de conflit peuvent survenir. Juste accepter le conflit et refaire la fusion.

10
Kevin Johnsrude

Commutez d'abord votre copie de travail sur le coffre. Puis, fusionnez une plage de révisions, de la branche au tronc. Une fois cette boîte de dialogue terminée, les différences seront en attente de modifications dans votre copie de travail du tronc. Vous devrez les valider comme si vous aviez apporté manuellement les modifications à votre copie de travail.

Dans mon utilisation, il est plus courant de garder le tronc en marche et de faire tourner les branches au moment des générations. Ainsi, la seule fusion dont j'ai besoin consiste à obtenir un correctif de bogue dans le coffre, à le placer sur la dernière branche de construction et à republier cette branche. La façon la plus simple pour moi de le faire, car, comme vous l'avez constaté, la fusion est au mieux maladroite. Est de garder la dernière branche et le tronc extrait de ma machine, et de copier littéralement les fichiers du tronc à la branche et de les archiver tous les deux.

6
DevelopingChris

J'utilise TortoiseSVN 1.9.3, Build 27038.

Suivez les étapes ci-dessous afin de fusionner une branche dans un coffre.

1) Faites un clic droit sur la copie de travail du coffre et sélectionnez l’option ci-dessous.

enter image description here

2) En cas de fusion de branches dans le coffre, sélectionnez l’option seconde comme indiqué ci-dessous et cliquez sur Suivant.

enter image description here

3) Dans le champ De: entrez l'URL du dossier complet du tronc. Cela peut sembler faux, mais rappelez-vous que le tronc est le point de départ auquel vous souhaitez ajouter les modifications de branche. Dans le champ À: entrez l'URL du dossier complet de la branche.

enter image description here

4) Cliquez sur Suivant et effectuez le test de fusion.

enter image description here

5) Si le test de fusion réussit, cliquez sur le bouton Fusionner.

6) Une fois la fusion réussie, validez les modifications sur le tronc.

3
Waqas Ahmed