Elección del control de versiones adecuado para el proyecto

Azure Repos | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017 | TFS 2015 | VS 2017 | VS 2015 | VS 2013

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 nuevos proyectos. Debe usar Git para el control de versiones en los proyectos a menos que tenga una necesidad específica de características de control de versiones centralizadas en TFVC.

Puede usar repositorios de TFVC con Git en el mismo Project, 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 TFS es Git estándar. Puede utilizar Visual Studio con los servicios de Git de terceros y también utilizar los clientes de GIT de terceros con TFS.

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 del servidor: antes de realizar cambios, los miembros del equipo des check out archivos públicamente. 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 las áreas de trabajo del servidor, puede escalar verticalmente a código base muy grande 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 versión más reciente del código base con ellas y funciona sin conexión según sea necesario. Los desarrolladores protegen sus cambios y resuelven los posibles conflictos. Otro sistema que funciona de esta manera es Subversion.

Para más información, consulte Información general de TFVC.

Pasar de TFVC a Git

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

Funcionalidades de Git y TFVC

¿Necesita más ayuda para tomar una decisión? Estos gráficos pueden ayudar.

Funcionalidad TFVC Git
Cambios

Los miembros del equipo pueden modificar simultáneamente los archivos en sus equipos de desarrollo. Los conjuntos de cambios (de entrada) se cargan en el servidor al crearlos. Puede cargar los cambios en cualquier momento. Sin embargo, es posible que se le interrumpan los conflictos.

Puede cambiar el comentario de un conjunto de cambios después de comprobarlo. 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 no'listo, debe extraer las confirmaciones más recientes antes de cargar (insertar) las de 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 adicional para cada bifurcación en la que trabajan.

Los cambios en cada rama son independientes entre sí, por lo que'tener que comprobarlos antes de cambiar de una rama a otra. La combinación entre ramas del mismo nivel requiere una combinació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 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 bifurcación para todas las características nuevas que codifican; en ocasiones, lo hacen 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 la máquina de desarrollo y compartirlas si y'están listas.

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 cuando se obtienen, se comprueban, se combinan o se desasoyen. 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 también quiera usar NuGet combinación o como alternativa. Puede comprobar 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 la máquina de desarrollo del cliente y, por tanto, solo se puede ver cuando'se vuelve a conectar 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 aplicar etiquetas a una versión de uno o varios archivos desde Visual Studio o 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 uno o varios conjuntos de cambios. Puede revertir una confirmación.
Escala Puede trabajar en proyectos de escala pequeña o muy grande mediante áreas de trabajo locales. Admite proyectos de escala masiva (millones de archivos por rama y archivos binarios grandes) mediante á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.

Servidor

Funcionalidad TFVC Git
Servidor Azure DevOps Services, TFS Azure DevOps Services, TFS y servicios de terceros de Git
Alertas Los miembros del equipo pueden recibir alertas por correo electrónico cuando se producen los check-ins. Los miembros del equipo pueden recibir alertas de correo electrónico cuando se inserten confirmaciones en el servidor.
Capacidad de auditoría Dado que el equipo comprueba todo su trabajo en un sistema centralizado, puede identificar qué usuario ha registrado en un conjunto de cambios y usar compare para ver lo que ha cambiado. Si observa un archivo, puede anotarlo para identificar quién cambió un bloque de código y cuándo lo hizo. Puede identificar qué usuario ha insertar una confirmación. (Cualquier persona puede reclamar cualquier identidad como autor o confirmador). Puede identificar cuándo se realizaron los cambios y lo que se cambió mediante el historial, la comparación y la anotación.
Compilaciones (automatizadas por TFBuild) Puede usar todas las funcionalidades de TFBuild para compilar cualquier combinación de contenido que desee dentro de la colección de proyectos. Puede usar la mayoría de las funcionalidades de TFBuild para compilar un proyecto a la vez y uno o varios repositorios a la vez.
Revisiones de código Sí; vea Day in the life of an devops Developer: Suspend work, fix a bug y conduct a code review. Para discusiones más ligeras, también puede comentar y enviar un correo electrónico sobre un conjunto de cambios desde el portal web. Sí; consulte Realización de una solicitud de extracción. Para discusiones más ligeras, 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 archivo. Puede bloquear archivos.

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

El proyecto solo existe en un servidor.

Cada proyecto puede contener uno o varios repositorios de Git y cada repositorio de Git puede contener una o varias ramas. 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 Windows Azure.

Controles de calidad Puede utilizar compilaciones de integración continua, compilaciones de protección controlada y directivas de protección. Puede usar compilaciones de CI y compilaciones de protección por puerta a través de directivas de rama.

Remoto

Funcionalidad TFVC Git
Software de cliente Visual Studio, Eclipse (con Team Explorer Everywhere) Visual Studio, Eclipse y otras herramientas de terceros
Archivos Puede examinar los archivos mediante Explorador de control de código fuente en Visual Studio o mediante Windows Explorador de archivos 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 Cambios pendientes y mis páginas de trabajo. Páginas cambios, confirmaciones y bifurcaciones.
Suspender el trabajo Puede suspender desde mi página de trabajo o suspender los cambios. Puede crear una bifurcación (en Visual Studio o en el símbolo del sistema) o guardarla provisionalmente (en el símbolo del sistema).
Interfaz de usuario
  • Visual Studio: Ofrece todas las características de uso común y muchas características avanzadas.
  • Portal web de TFS: Puede examinar, comentar, anotar y ver el historial del código base.
  • Símbolo del sistema de TF: Se instala con Visual Studio. Se utiliza para tareas avanzadas, administrativas y otras menos comunes.
  • Visual Studio: Ofrece muchas características de uso frecuente. Algunas características para tareas comunes aún no están disponibles.
  • Portal web de TFS: Puede examinar, comentar, anotar y ver el historial del código base.
  • Símbolo del sistema de terceros: Puede instalarlo desde Visual Studio. Se utiliza para algunas tareas de uso general y otras menos comunes.
Compatibilidad de Visual Studio Puede usar todas las versiones anteriores admitidas de Visual Studio.

Git se integra con Visual Studio 2017, 2015 y 2013.

También puede usar Visual Studio 2012 Update 4 (también debe instalar Visual Studio Tools para Git).

Portal web Puede examinar el código base (incluidas las bifurcaciones), 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 bifurcaciones, anotar y comentar conjuntos confirmaciones, y realizar otras tareas, como descargar ad hoc partes seleccionadas del código base como un archivo .zip.

Integración y migración

Funcionalidad TFVC Git
Ruta de migración Git-TFS Git-TFS