Resolver conflictos del control de versiones de Team Foundation

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Una ventaja de usar el Control de versiones de Team Foundation (TFVC) para administrar los archivos es que varias personas pueden trabajar simultáneamente en un archivo. Una desventaja es que a veces debe resolver los conflictos para poder obtener, proteger, retomar cambios aplazados, combinar o revertir los archivos.

Aunque puede ser frustrante encontrar conflictos, el sistema proporciona información y herramientas que le ayudarán a entenderlos y resolverlos.

También puede resolver conflictos desde la línea de comandos mediante el comando Resolve.

Sugerencia

Si el equipo necesita colaborar para resolver un gran número de conflictos, por ejemplo, después de una operación Merge en un código base grande, un área de trabajo pública en una máquina de desarrollo compartida podría ayudar. Para obtener más información, consulte Crear y trabajar con áreas de trabajo.

Resolución de conflictos

Puede usar la ventana Resolver conflictos de Visual Studio para resolver los conflictos que son un obstáculo. Para abrir la ventana, seleccione Acciones>Resolver conflictos en la página Cambios pendientes de Team Explorer.

Captura de pantalla del uso de la ventana Resolver conflictos para resolver conflictos.

De forma predeterminada, la ventana muestra solo los conflictos producidos por la operación más reciente que ha intentado realizar. Cuando la ventana está en este estado, aparece un mensaje que comienza por: Filtro de ruta aplicado. Para mostrar todos los conflictos en el área de trabajo, seleccione Obtener todos los conflictos. Aparece un mensaje que comienza por: <N> Conflicto(s).

Si ha trascurrido mucho tiempo desde que realizó los cambios en los archivos del área de trabajo, puede que se hayan producido nuevos conflictos. Para actualizar la ventana Resolver conflictos, elija Actualizar.

Captura de pantalla que muestra la ventana Resolver conflictos.

Cada conflicto contiene información y, a veces, vínculos que pueden ayudarle a resolverlo. Para obtener más información, puede seleccionar el conflicto y elegir una de estas opciones:

  • Icono de historial.Historial para ver el historial del archivo. Si la operación que produjo el conflicto es una fusión mediante combinación o una reversión, puede elegir el control de menú que se encuentra a la derecha de Historial y, después, seleccionar Historial de origen o Historial de destino. Para obtener más información, consulte Obtener el historial de un elemento.

  • Icono Comparar.Comparar, o seleccione la flecha desplegable situada junto al icono y elija un comando. Se abre la ventana Diferencias.

  • Icono Anotar.Anotar si quiere ver los detalles de todos los cambios que se realizaron en la versión más reciente del archivo, incluido el usuario que realizó cada modificación y la fecha de esta. Consulte Ver los cambios en archivos mediante anotación.

Resolver automáticamente todos los conflictos

De forma predeterminada, en materia de conflictos, el sistema trata de Resolver todos automáticamente, a menos que desactive esta opción. Para desactivar Resolver todos automáticamente, seleccione Herramientas>Opciones. En el cuadro de diálogo Opciones, en Control de código fuente>Visual Studio Team Foundation Server, anule la selección de Intentar resolver los conflictos automáticamente cuando se generan.

También puede elegir manualmente Resolver todos automáticamente en la ventana Resolver conflictos y, después, seleccionar una de estas opciones:

  • Todos los tipos de conflicto si quiere que el sistema intente resolver los conflictos automáticamente con toda su heurística.

  • Specific Conflict Types (Tipos de conflicto específicos) si quiere que el sistema intente resolver los conflictos, pero sin incluir parte de la heurística.

    Aparece el cuadro de diálogo Elegir conflictos para resolver. Active o desactive las opciones que quiere habilitar o deshabilitar y, después, elija Resolver automáticamente.

    El sistema intenta resolver automáticamente los conflictos mostrados en la ventana Cambios pendientes. Cualquier conflicto que el sistema no pueda resolver permanece en la ventana. Tiene que resolver manualmente estos conflictos.

Comprender las opciones automáticas

Puede restringir los tipos de conflictos que se resuelven automáticamente con la opción Resolver todos automáticamente. Si elige Resolver todos automáticamente y, después, Tipos de conflicto específicos, aparecerá el cuadro de diálogo Elegir conflictos para resolver.

Captura de pantalla que muestra el cuadro de diálogo Elegir conflictos para resolver.

Motivo de conflicto

Ejemplo

Selección de casilla


Se realizaron cambios de contenido no conflictivos en cada versión de un archivo.

En la versión de archivo de la izquierda, se agregó un cero al principio. En el archivo de la derecha, se agregó un tres al final:

Captura de pantalla de cambios de contenido que no entran en conflicto.

Conflictos con cualquier cambio de contenido

Los cambios de contenido se realizaron durante una operación de obtención o protección que son exclusivas del área de trabajo, o durante una operación de combinación o reversión que son exclusivas de la versión de destino.

Se agregaron las entradas cuatro y cinco al área de trabajo o a la versión de destino:

Captura de pantalla de los cambios de contenido exclusivos del área de trabajo o destino.

Conflictos con cambios de contenido realizados solo en el área de trabajo local o en la bifurcación de destino

Los cambios de contenido se realizaron durante una operación de obtención o protección que son exclusivas del servidor, o durante una operación de combinación o reversión que son exclusivas de la versión de origen.

Se agregaron las entradas cuatro y cinco al servidor o a la versión de origen:

Captura de pantalla de los cambios de contenido exclusivos en el servidor o el origen.

Conflictos con cambios de contenido realizados solo en la versión del servidor o en la bifurcación de origen

Se cambió el nombre de un archivo en el servidor durante una operación de obtención o protección o en la rama de origen durante operación de fusión mediante combinación o reversión.

Desprotegió un archivo denominado launch.cs y trabajó en él. Durante ese tiempo, alguien más protegió un conjunto de cambios que afectaba al mismo archivo. Ese conjunto de cambios no modificó el contenido del archivo, pero cambió su nombre a start.cs.

Conflictos causados al cambiar el nombre de un archivo en la versión de servidor o en la bifurcación de origen

Se realizaron cambios de contenido comunes que resultaron en un contenido idéntico en cada versión. O cambió un archivo, lo protegió mediante una compilación de inserción en el repositorio validada y seleccionó la opción Conservar mis cambios pendientes localmente.

Los cambios en cada versión dieron como resultado un contenido idéntico de los archivos. Los cambios pueden realizarse en el contenido de los archivos, como se muestra en el siguiente ejemplo:

Captura de pantalla que muestra los cambios de contenido idénticos en ambas versiones.

Conflictos causados por un cambio idéntico en el servidor y el área de trabajo

Esta opción también resuelve conflictos que producen las demás operaciones, por ejemplo, cambio de nombre, eliminación, recuperación y creación de rama, que dan como resultado archivos idénticos.

Sugerencia

Si activa esta casilla, al continuar el sistema resolverá estos cambios mediante la descarga de la versión de servidor en el área de trabajo.

Conflictos seleccionados de Fusionar mediante combinación automáticamente

Para intentar resolver los conflictos seleccionados mediante todas las opciones de Fusionar mediante combinación automáticamente anteriores, seleccione uno o varios conflictos y, después, Fusionar mediante combinación automáticamente.

Sugerencia

Puede mantener presionadas la tecla Ctrl o Mayús para seleccionar varios conflictos.

Nota:

Si Fusionar mediante combinación automáticamente está deshabilitado, debe resolver manualmente los conflictos.

Resolución manual de conflictos seleccionados

Si el sistema no puede resolver automáticamente un conflicto o si quiere asegurarse de que entiende los cambios, debe hacerlo manualmente. En cada conflicto, el sistema muestra las medidas que se pueden tomar para resolver dicho conflicto. Las medidas que se muestran dependen del tipo de conflicto y de la operación que lo produjo.

Use la ventana Fusión mediante combinación

Cuando los cambios de contenido en conflicto provocan un conflicto, puede elegir Fusionar mediante combinación cambios en la herramienta de fusión mediante combinación. Aparece la ventana Combinar.

Captura de pantalla en la que se muestran los cambios de fusión mediante combinación en la herramienta de fusión mediante combinación.

En la ventana Fusión mediante combinación, puede hacer lo siguiente:

  • Seleccionar el diseño de la ventana: Vista vertical, Vista horizontal o Vista mixta.
  • Navegar por las diferencias y los conflictos.
  • Seleccionar elementos en las versiones a la izquierda y a la derecha del archivo para incluirlas en el resultado.
  • Escriba más contenido en el archivo en el panel Resultado.
  • Ver el historial del archivo. Para obtener más información, consulte Obtener el historial de un elemento.
  • Comparar las versiones del archivo.
  • Anotar el archivo para ver quién hizo las modificaciones y qué cambió. Para obtener más información, consulte Ver los cambios en archivos mediante anotación.

Cuando esté satisfecho con el contenido del panel de Resultado, elija Aceptar fusión mediante combinación.

El resultado de resolver el conflicto aparece en el panel Resultado.