¿Es posible desactivar la opción de fusión automática en Visual Studio Team System 2008? Si es así, ¿cómo?


Me gustaría deshabilitar la función de fusión automática al registrar un archivo en TFS en el que otro desarrollador haya trabajado para que siempre tenga que fusionar manualmente. ¿Hay alguna manera de hacer esto?

Author: jessehouwing, 2009-11-02

3 answers

Intente hacer lo siguiente (trabajando en todas las versiones de Visual Studio a partir de 2012):

Herramientas - > Opciones - > Control de código fuente - > Visual Studio Team Foundation Server - > Desmarque "Intentar resolver automáticamente los conflictos cuando se generan":

introduzca la descripción de la imagen aquí

 113
Author: Andrey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-27 10:44:41

La respuesta corta a partir de Visual Studio 2008 parece ser no.

 3
Author: Bryan Anderson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-05 15:43:49

Cada vez que dos personas han cambiado el mismo archivo, tienes que "fusionar" el código. Esto puede tomar tres formas:

  • Mantenga su versión (descartando sus cambios)
  • Mantenga su versión (descartando sus cambios)
  • Fusiona ambos cambios para fusionarlos

No puedes "desactivar esto", porque no hay otra forma segura de resolver el conflicto.

Lo más cercano que puede llegar a desactivar la fusión es no permitir múltiples checkouts (bloquear el archivo para que solo un desarrollador puede trabajar en él a la vez). Esto evita que se produzcan dos ediciones simultáneas, y por lo tanto evita el problema de fusionar por completo. (Con el costo adicional de que los desarrolladores a menudo estén bloqueados y no puedan trabajar en un archivo mientras otro desarrollador tiene el bloqueo). Esta es una forma horrible y generalmente ineficiente de trabajar - no lo recomendaría.

Puede minimizar la necesidad de fusiones:

  • Regístrese con frecuencia. Muchos pequeños cambios reducen su exposición a conflictos de fusión, mientras que algunos cambios grandes aumentan su exposición.
  • Divida archivos grandes y a menudo cambiados en muchos archivos más pequeños para minimizar la posibilidad de que 2 desarrolladores necesiten chnage el mismo archivo al mismo tiempo
  • Antes de comenzar a trabajar en un archivo, verifique si alguien más lo está editando, e intente reorganizar su "programación" para que no tenga que comenzar a editar ese archivo mientras el otro programador está trabajando en él (un "bloqueo suave" autoimpuesto, para reducir la posibilidad de que las fusiones sean necesario)

También puede actualizar las herramientas de combinación. La combinación de Visual Studio es horrible , difícil de usar, y a menudo introduce problemas en el código. Me ha mordido tantas veces que no puedo confiar en él, así que tengo que hacer fusiones manuales dolorosas cada vez. Ahora uso Araxis Merge, que siempre hace una fusión automática a la perfección, lo que me da la confianza de que puedo dejarlo para que haga la fusión por mí. (Nunca he utilizado otro programa de fusión que me da esa confianza, y he probado casi todas las demás opciones a lo largo de los años). Cuando se requiere una fusión manual, ofrece una vista de fusión muy clara para" leer", y una interfaz de usuario muy rápida e intuitiva para elegir cómo combinar cada bit de código, lo que la hace muy eficiente. Una vez luché durante 3 días con una combinación compleja en VS (corrompiendo el código varias veces hasta que me di por vencido), luego compré Araxis Merge y re-hice toda la fusión perfectamente en 15 minutos. Una buena herramienta realmente quita el dolor de la fusión.

(no soy afiliado con Araxis de cualquier manera, simplemente no puedo soportar la mayoría de las terribles herramientas de fusión por ahí)

 1
Author: Jason Williams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-02 20:54:38