web-dev-qa-db-fra.com

Est-il possible de désactiver l'option de fusion automatique dans Visual Studio Team System 2008? Si c'est le cas, comment?

J'aimerais désactiver la fonction de fusion automatique lors de l'archivage d'un fichier sur TFS sur lequel un autre développeur a travaillé, de sorte que je dois toujours fusionner manuellement. Est-ce qu'il y a un moyen de faire ça?

63
Bryan Anderson

La réponse courte à partir de Visual Studio 2008 semble être non.

3
Bryan Anderson

Essayez d'effectuer les opérations suivantes (fonctionnant dans toutes les versions de Visual Studio à partir de 2012):

Outils -> Options -> Contrôle de source -> Visual Studio Team Foundation Server -> Décochez "Tenter de résoudre automatiquement les conflits lorsqu'ils sont générés":

enter image description here

118
Andrey

Chaque fois que deux personnes ont modifié le même fichier, vous devez "fusionner" le code. Cela peut prendre trois formes:

  • Conservez votre version (en ignorant leurs modifications)
  • Conserver leur version (en ignorant vos modifications)
  • Fusionner les deux modifications pour les fusionner toutes les deux

Vous ne pouvez pas "désactiver cela", car il n'existe aucun autre moyen sûr de résoudre le conflit.

La méthode la plus proche pour désactiver la fusion consiste à interdire plusieurs extractions (verrouillez le fichier afin qu'un seul développeur puisse y travailler à la fois). Cela évite deux modifications simultanées et évite ainsi le problème de la fusion complète. (Au coût supplémentaire des développeurs souvent bloqués et incapables de travailler sur un fichier alors qu'un autre développeur a le verrou). C'est une façon horrible et généralement inefficace de travailler - je ne le recommanderais pas.

Vous pouvez minimiser le besoin de fusion:

  • Enregistrez-vous fréquemment. De nombreux petits changements réduisent votre exposition aux conflits de fusion, tandis que quelques grands changements augmentent votre exposition.
  • Divisez les fichiers volumineux et souvent modifiés en de nombreux fichiers plus petits pour minimiser les risques que 2 développeurs aient besoin de modifier le même fichier en même temps
  • Avant de commencer à travailler sur un fichier, vérifiez si quelqu'un d'autre le modifie et essayez de réorganiser votre "planning" afin de ne pas avoir à commencer à modifier ce fichier pendant que l'autre programmeur y travaille (un auto-imposé " soft lock ", pour réduire le risque de fusion nécessaire)

Vous pouvez également mettre à niveau les outils de fusion. La fusion de Visual Studio est horrible, difficile à utiliser et introduit souvent des problèmes dans le code. Cela m'a mordu tellement de fois que je ne peux jamais lui faire confiance, alors je dois faire des fusions manuelles douloureuses à chaque fois. J'utilise maintenant Araxis Merge qui fait toujours une fusion automatique parfaitement, me donnant la certitude que je peux simplement le laisser faire la fusion pour moi. (Je n'ai jamais utilisé un autre programme de fusion qui me donne cette confiance, et j'ai essayé à peu près toutes les autres options au fil des ans). Lorsqu'une fusion manuelle est requise, elle offre une vue de fusion très claire à "lire", et une interface utilisateur très rapide et intuitive pour choisir comment fusionner chaque bit de code, ce qui le rend très efficace. Une fois, j'ai eu du mal pendant 3 jours avec une fusion complexe dans VS (corrompant le code plusieurs fois jusqu'à ce que j'abandonne), puis j'ai acheté Araxis Merge et refait parfaitement la fusion en 15 minutes. Un bon outil élimine vraiment la douleur de la fusion.

(Je ne suis en aucun cas affilié à Araxis, je ne supporte pas la plupart des terribles outils de fusion disponibles)

1
Jason Williams