2009-11-02 9 views

Répondre

3

La réponse courte à partir de Visual Studio 2008 ne semble pas.

1

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

  • Gardez votre version (jeter leurs modifications)
  • Gardez leur version (jeter vos modifications)
  • Fusionner les deux changements pour les mélanger les deux ensemble

Vous pouvez "Ne pas éteindre", car il n'y a pas d'autre moyen sûr de résoudre le conflit. Le plus proche que vous pouvez obtenir pour désactiver la fusion est d'interdire plusieurs extractions (verrouiller le fichier afin qu'un seul développeur puisse travailler dessus à la fois). Cela empêche deux modifications simultanées et évite ainsi le problème de la fusion complète. (Au coût supplémentaire des développeurs étant souvent bloqués et incapables de travailler sur un fichier alors qu'un autre développeur a le verrou). C'est une manière terrible et généralement inefficace de travailler - je ne le recommanderais pas.

Vous pouvez réduire la nécessité de se confond:

  • Arrivée fréquemment. De nombreux petits changements réduisent votre exposition aux conflits de fusion, tandis que quelques changements importants augmentent votre exposition. Diviser les fichiers volumineux et souvent modifiés en plusieurs fichiers plus petits afin de minimiser le risque que 2 développeurs doivent gérer 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 "programme" de sorte que vous n'ayez pas à commencer à éditer ce fichier pendant que l'autre programmeur travaille dessus (un "soft lock" auto-imposé, pour réduire le risque de fusion)

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. Il m'a mordu tellement de fois que je ne peux jamais me fier à lui, alors je dois faire des fusions manuelles douloureuses à chaque fois. J'utilise maintenant Araxis Merge qui fait toujours une fusion automatique parfaite, ce qui me donne confiance que je peux juste 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é pratiquement toutes les autres options au cours des années). Quand 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, le rendant très efficace. Une fois j'ai lutté 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 j'ai refait toute la fusion en 15 minutes. Un bon outil prend vraiment la douleur de la fusion.

(Je ne suis pas affilié à Araxis de quelque façon, je ne peux pas supporter la plupart des terribles outils de fusion là-bas)

+9

Je ne souhaite pas supprimer la fonctionnalité de fusion. Je veux juste désactiver la "fonctionnalité" automatique de fusion parce qu'elle a tendance à le faire terriblement. Fondamentalement, je le veux donc je ferai toujours une fusion manuelle. –

+0

Je l'ai déjà configuré pour faire des fusion manuelles dans Winmerge ce qui rend les fusion manuelles presque indolores. –

+1

Ah. Dans ce cas, je m'excuse de ne pas être très utile. J'ai peur de partager votre plainte (le nombre de boîtes de dialogue que vous devez parcourir pour fusionner la fusion entre VSTS et l'outil de fusion est si frustrant, fastidieux et fastidieux! pense que je vais juste écrire un frontal de remplacement pour TFS, 'cos the MS one (pour utiliser le terme technique) vraiment nul) –

107

Essayez de faire ce qui suit:

VS 2012 -> Outils -> Options -> Contrôle de la source -> Visual Studio Team ... Fou-> Décochez la case "Tentative de résolution automatique des conflits lors de leur génération"

+0

Je pense que l'utilisateur veut ici désactiver la possibilité de fusion automatique complète. Je devine que basé sur le fait que l'option que vous référencez n'existait pas lorsque cette question a été écrite ... –

+1

Cela a fonctionné pour nous pour VS2012 + TFS2012. – SarjanWebDev

+0

Juste au cas où vous avez besoin d'un lien ..voir cet article http://www.donovanbrown.com/post/2013/01/31/I-dont-trust-2012-Auto-merge-but-it-does- it-automatically- – Amitd

Questions connexes