Selección del control de versiones correcto para el proyecto

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

Visual Studio 2019 | Visual Studio 2022

Independientemente de que el proyecto de software sea grande o pequeño, se recomienda usar el control de versiones lo antes posible. Azure Repos admite dos tipos de control de versiones: Git y Control de versiones de Team Foundation (TFVC).

¿Qué sistema de control de versiones debo utilizar?

Git es el proveedor de control de versiones predeterminado para los nuevos proyectos. Debe usar Git para el control de versiones en los proyectos y empezar a mover los proyectos de TFVC existentes a Git. TFVC se considera una característica completa. Azure DevOps mantendrá la compatibilidad con TFVC, pero Git recibirá toda la inversión futura.

Puede usar repositorios de TFVC con Git en el mismo proyecto, por lo que es fácil agregar TFVC más adelante si necesita un control de versiones centralizado. Para configurar un nuevo tipo de repositorio para un proyecto existente , siga estas instrucciones.

GIT (distribuido)

Git es un sistema de control de versiones distribuido. Cada desarrollador tiene una copia del repositorio de origen en su máquina de desarrollo. Los desarrolladores pueden confirmar cada conjunto de cambios en sus equipos de desarrollo y realizar las operaciones de control de versiones en forma de historial para compararlos sin necesidad de una conexión de red. Las bifurcaciones son ligeras. Si necesita cambiar contextos, puede crear una bifurcación privada local. Puede cambiar rápidamente de una bifurcación a otra para desplazarse por las distintas variaciones del código base. Posteriormente, podrá combinar, publicar o desechar la bifurcación.

Nota:

Git en Visual Studio, Azure DevOps Services y Azure DevOps Server es Git estándar. Puede usar Visual Studio con servicios de Git de terceros y también puede usar clientes Git de terceros con Azure DevOps Server.

Para más información, consulte Git y Azure Repos.

TFVC (centralizado)

El control de versiones de Team Foundation (TFVC) es un sistema de control de versiones centralizado. Normalmente, los miembros del equipo solo tienen una versión de cada archivo en sus equipos de desarrollo. Los datos históricos se conservan únicamente en el servidor. Las bifurcaciones se basan en las rutas de acceso y se crean en el servidor.

TFVC tiene dos modelos de flujo de trabajo:

  • Áreas de trabajo de servidor: antes de realizar cambios, los miembros del equipo deben desproteger públicamente los archivos. En la mayoría de las operaciones, es necesario que los desarrolladores estén conectados al servidor. Este sistema facilita el bloqueo de flujos de trabajo. Otros sistemas que funcionan de esta forma son Visual SourceSafe, Perforce y CVS. Con los áreas de trabajo de servidor, puede escalar hasta bases de código muy grandes con millones de archivos por rama y archivos binarios de gran tamaño.

  • Áreas de trabajo locales: cada miembro del equipo toma una copia de la última versión del código base y trabaja sin conexión. Los desarrolladores protegen sus cambios y resuelven los posibles conflictos. Otro sistema que funciona de esta manera es Subversion.

Para más información, vea ¿Qué es Control de versiones de Team Foundation?

Traslado de TFVC a Git

Si tiene repositorios TFVC existentes, puede migrarlos a repositorios de Git mediante la herramienta git-tfs. La herramienta permite migrar un repositorio TFVC a un repositorio de Git en un par de comandos.

Funcionalidades de Git y TFVC

En la tabla siguiente se proporciona un resumen de cómo TFVC y Git admiten las principales funcionalidades del control de versiones.

Funcionalidad

TFVC

Git


Cambios

Los miembros del equipo pueden modificar simultáneamente los archivos en sus equipos de desarrollo. Los conjuntos de cambios se cargan (protegen) en el servidor cuando se crean. Puede cargar los cambios en cualquier momento. Sin embargo, puede haber conflictos que provoquen una interrupción.

Puede cambiar el comentario de un conjunto de cambios después de protegerlo. Puede vincular conjuntos de cambios a los elementos de trabajo y asociarlos a las compilaciones completadas.

Los miembros del equipo pueden modificar simultáneamente los archivos en sus equipos de desarrollo. Las confirmaciones se crean en el equipo de desarrollo con independencia de si se van a compartir con el equipo. Cuando esté listo, debe extraer las últimas confirmaciones antes de cargar (insertar) las suyas propias en el servidor. Cuando realice la extracción, es posible que haya conflictos que interrumpan el proceso.

Puede rectificar la última confirmación local. No puede cambiar confirmaciones anteriores. Puede vincular confirmaciones a elementos de trabajo y asociarlos a las compilaciones completadas.

Puede modificar y combinar confirmaciones locales desde el símbolo del sistema.

Bifurcación

Las bifurcaciones basadas en ruta de acceso se utilizan principalmente como construcciones de larga duración para aislar el riesgo que implica cambiar entre equipos y versiones de características. Normalmente, los miembros del equipo configuran un área de trabajo diferente para cada bifurcación en la que trabajan.

Los cambios de cada rama son independientes entre sí, por lo que no es necesario protegerlos antes de cambiar de una rama a otra. La fusión entre ramas similares requiere una fusión sin base.

Puede acceder a las vistas de las estructuras de bifurcaciones y la ubicación en la que se combinaron los conjuntos de cambios.

Consulte Uso de ramas para aislar el riesgo en el control de versiones de Team Foundation.

La creación de bifurcaciones es ligera y no depende de la ruta de acceso. Muchos desarrolladores crean una rama para cada nueva característica que codifican, a veces diariamente. Puede cambiar rápidamente de una bifurcación a otra para desplazarse por las distintas variaciones del código base. Puede crear ramas que solo existan en su equipo de desarrollo y compartirlas únicamente si lo estima oportuno.
Debe confirmar, bifurcar, guardar provisionalmente o deshacer los cambios realizados antes de cambiar entre las bifurcaciones. El proceso de combinación es simple e independiente de la confirmación en la que se basa la bifurcación. Puede comparar bifurcaciones para ver qué confirmaciones hay y en qué bifurcaciones se encuentran.

Consulte Uso de ramas de Git para cambiar contextos, suspender el trabajo y aislar el riesgo.

Resolución de conflictos

Es posible que tenga que resolver conflictos al obtener, insertar en el repositorio, fusionar mediante combinación o recuperar cambios agregados pendientes de confirmación. Puede resolver todos los tipos de conflictos en Visual Studio.

Es posible que tenga que resolver conflictos cuando realice la extracción o combinación. Puede resolver conflictos de contenido en Visual Studio o desde el símbolo del sistema.

File Storage

Puede proteger archivos binarios grandes. Es posible que desee utilizar también NuGet en una combinación o como alternativa.

Puede insertar en el repositorio archivos binarios pequeños como lo haría con los archivos normales. Al trabajar con archivos binarios grandes, use Git-LFS para almacenar los archivos binarios grandes en Azure Repos.

Historial

El historial de archivos no se replica en el equipo de desarrollo cliente y, por tanto, solo podrá verlo cuando se conecte al servidor. Puede ver el historial en Visual Studio y en el portal web. Puede anotar los archivos para ver quién cambió una línea y cuándo lo hizo.

El historial de archivos se replica en el equipo de desarrollo cliente y puede verlo aunque no esté conectado al servidor. Puede ver el historial en Visual Studio y en el portal web. Puede anotar los archivos para ver quién cambió una línea y cuándo lo hizo.

Etiquetar los archivos

Puede utilizar etiquetas en una versión de uno o varios archivos tanto desde Visual Studio como desde el símbolo del sistema. Cada archivo puede tener una etiqueta aplicada a una versión diferente.

Puede aplicar etiquetas desde el símbolo del sistema en cada una de las confirmaciones. Puede ver las etiquetas en la ventana del historial de Visual Studio.

Revertir los cambios

Puede revertir una confirmación.

Escala

Puede trabajar en proyectos pequeños o muy grandes mediante las áreas de trabajo locales. Admite proyectos de gran magnitud (millones de archivos por bifurcación y archivos binarios grandes) mediante el uso de áreas de trabajo de servidor.

Puede iniciar proyectos pequeños rápidamente. Se puede aumentar el tamaño para proyectos muy grandes, pero tiene que planearlo con antelación para poder establecer los módulos del código base. Puede crear varios repositorios en un proyecto.

Server

En la tabla siguiente se resumen las características disponibles con los servidores admitidos para cada uno de los sistemas de control de versiones.

Funcionalidad

TFVC

Git


Server

Azure DevOps Services, Azure DevOps Server

Azure DevOps Services, Azure DevOps Server y servicios de terceros de Git

Alertas

Los miembros del equipo pueden recibir alertas de correo electrónico cuando se inserten confirmaciones en el servidor.

Capacidad de auditoría

Como el equipo protege todo el trabajo en un sistema centralizado, puede identificar qué usuario protegió un conjunto de cambios y utilizar Comparar para ver los cambios. Cuando examine un archivo, puede anotarlo para identificar quién cambió un bloque de código y cuándo lo hizo.

Puede identificar qué usuario insertó una confirmación. (Cualquiera puede reclamar cualquier identidad como autor o persona que haya realizado la confirmación). Puede identificar cuándo se realizaron los cambios y qué se cambió mediante el historial, la comparación y la anotación.

Compilaciones (automatizadas por TFBuild)

Puede usar todas las funcionalidades de TFBuild para crear cualquier combinación de contenido que desee dentro de la colección de proyectos.

Puede utilizar la mayoría de las funciones de TFBuild para compilar un proyecto cada vez y uno o varios repositorios al mismo tiempo.

Revisiones de código

Consulte Día en la vida de un desarrollador de devops: Suspender trabajo, corregir un error y realizar una revisión de código. Para debates más sencillos, también puede comentar y enviar correos electrónicos sobre un conjunto de cambios desde el portal web.

Vea Revisar las solicitudes de incorporación de cambios. Para debates más sencillos, también puede comentar y enviar un correo electrónico sobre una confirmación desde el portal web.

Archivos

Cada proyecto contiene todos los archivos en una única ruta de acceso raíz (por ejemplo: $/FabrikamTFVC). Puede aplicar permisos en el nivel de esquema. Puede bloquear archivos.

Puede examinar los archivos en el portal web y mediante el Explorador de control de código fuente de Visual Studio.

El proyecto existe en un solo servidor.

Cada proyecto puede contener uno o varios repositorios Git, y cada repositorio Git puede contener una o varias bifurcaciones. Los permisos más específicos que se pueden aplicar se establecerán en un repositorio o en una bifurcación. Los archivos no se pueden bloquear.

Puede examinar los archivos en el portal web.

Puede insertar confirmaciones en varios repositorios remotos (por ejemplo, en el repositorio del proyecto y en el sitio web hospedado en Azure).

Controles de calidad

Puede usar compilaciones de integración continua (CI), compilaciones de protección controladas y directivas de protección.

Puede usar compilaciones de CI y compilaciones de protección controladas a través de directivas de rama.

Remoto

En la tabla siguiente se resumen las características admitidas por el cliente disponibles en función del sistema de control de versiones que seleccione.

Funcionalidad

TFVC

Git


Software de cliente

Visual Studio

Visual Studio, Visual Studio Code, Eclipse y otras herramientas de terceros

Archivos

Puede examinar los archivos mediante el Explorador de control de código fuente en Visual Studio o mediante el Explorador de archivos de Windows o el símbolo del sistema.

Puede examinar los archivos utilizando el Explorador de archivos de Windows o el símbolo del sistema.

Administrar el trabajo en el equipo de desarrollo

Páginas de Cambios pendientes y Mi trabajo en el Explorador de equipos de Visual Studio.

Páginas cambios, confirmaciones y bifurcaciones.

Suspender el trabajo

Puede suspender el trabajo desde la página Mi trabajo o Preparar para confirmar los cambios en la página Cambios pendientes. Para obtener más información, consulte Suspensión del trabajo y administración de los conjuntos de cambios agregados pendientes de confirmación.

Puede crear una rama desde Visual Studio o desde el símbolo del sistema, o guardar en el símbolo del sistema.

Compatibilidad de Visual Studio

Portal web

Puede examinar el código base (incluidas las ramas), ver el historial, anotar y comentar conjuntos de cambios y conjuntos de cambios aplazados, y realizar otras tareas, como descargar ad hoc partes seleccionadas del código base como un archivo .zip.

Puede examinar el código base, ver el historial, comparar ramas, anotar y comentar conjuntos confirmaciones, y realizar otras tareas, como descargar ad hoc partes seleccionadas del código base como un archivo .zip.

Migración

Para obtener información sobre cómo migrar de TFVC a Git, consulte Migración de TFVC a Git.