TFS: mise à jour de la branche avec les modifications de main

100

Donc, nous avons notre principale ligne de développement, je crée une branche et le développeur b crée une branche. Nous travaillons tous les deux. le développeur b termine son travail, fusionne à nouveau dans la ligne de développement principale. Je sais que ses changements vont m'affecter, et plutôt que de traiter les conflits plus tard, j'aimerais mettre à jour ma branche, avec les changements qui sont maintenant dans la ligne de développement principale, afin que je puisse les traiter dans ma branche, avant de fusionner retour en main.

Comment je fais ça?

CaffGeek
la source

Réponses:

175

À partir de Visual Studio, ouvrez l'Explorateur de contrôle de code source:

  • Voir | Explorateur d'équipe
  • Sélectionnez votre projet d'équipe dans Team Explorer, développez-le et double-cliquez sur Contrôle de code source
  • Dans le volet gauche de l'Explorateur de contrôle de code source, sélectionnez votre projet d'équipe .
  • Dans le volet de droite, recherchez votre branche principale, cliquez avec le bouton droit de la souris et sélectionnez Fusionner ...
  • Dans la liste déroulante Branche cible , sélectionnez votre branche de développement.
  • Si vous voulez un sous-ensemble de toutes les modifications de la ligne principale:
    • Choisissez le bouton radio Ensembles de modifications sélectionnés , cliquez sur Suivant .
    • Sélectionnez les ensembles de modifications qui représentent la fusion de la branche de votre autre développeur vers main, cliquez sur Suivant .
  • Sinon, gardez Toutes les modifications jusqu'à une version spécifique sélectionnée, cliquez sur Suivant
    • L'étape suivante consiste à choisir un type de version. La dernière version par défaut est évidemment simple et explicite: vous apporteriez toutes les modifications depuis que votre branche a été créée à partir de la ligne principale dans votre branche. Les autres choix sont simples, mais une explication du didacticiel de chaque option disponible ici prendrait beaucoup de place.
    • Parcourez les étapes restantes de l'assistant.
  • Cliquez sur Terminer .
  • S'il y a des erreurs ou des conflits de fusion, vous serez invité à les résoudre, comme ce que vous verriez si vous vérifiiez vos modifications dans le contrôle de code source alors que d'autres modifications avaient été apportées depuis la dernière extraction.
  • Une fois la fusion terminée, toutes les modifications sont dans votre copie locale de la branche, mais elles ne sont pas encore validées dans le contrôle de code source. Une fois que vous avez terminé toutes vos versions et tous vos tests sur votre branche, vous pouvez archiver la fusion. Depuis Visual Studio:
    • Voir | Autres fenêtres | Modifications en attente
    • Assurez-vous que tous les fichiers liés à cette fusion sont cochés, ajoutez des commentaires décrivant la fusion et cliquez sur Archiver .

Je recommande de conserver les fusions (et toute résolution de conflit de fusion nécessaire, les interruptions de construction, les interruptions de test) comme leur propre ensemble de modifications. Autrement dit, ne mélangez pas d'autres fonctionnalités avec des fusions. Les ensembles de modifications granulaires facilitent grandement la révision de l'historique du contrôle de code source et l'identification d'un seul changement d'intérêt. Garder le travail de fusion dans son propre ensemble de modifications aide à atteindre cet objectif.

Il existe également une ligne de commande pour la fusion, exécutée à tf merge /?partir d'une invite de commande Visual Studio.

Bonne chance et amusez-vous bien!

Andrew Brown
la source
1
A parfaitement fonctionné. Merci. Je voulais juste m'assurer que je procédais de la bonne manière. C'est parfait.
CaffGeek
Et si quand on me demandait de résoudre des conflits, je faisais une erreur sur la façon de résoudre le conflit, et je voudrais seulement la corriger pour ce seul fichier. Est-il possible de rétablir ce fichier et de le fusionner à nouveau afin de bénéficier d'une seconde chance de fusion en conflit?
Didier A.
Que faire si je souhaite fusionner une étiquette spécifique de la source principale dans ma branche cible? L'étiquette souhaitée est créée après l'opération de branche d'origine (juste pour plus de clarté)
Simon Bosley