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: Gity 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 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 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 grandes.
Á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 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.
Capacidad
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 interrumpa por 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 esté 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 no tiene 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 cuando esté listo.
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, comprobar, combinar o deshacer. 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 de cliente, por lo que solo se puede ver cuando se conecta 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 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 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.
Server
Funcionalidad
TFVC
Git
Server
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 inserido una confirmación. (Cualquier persona puede notificar una identidad como autor o responsable de 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 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 obtener 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 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.
Cliente
Funcionalidad
TFVC
Git
Software de cliente
Visual Studio, Eclipse (con Team Explorer Everywhere)
Visual Studio, Visual Studio Code, 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).
Compatibilidad de Visual Studio
Puede usar todas las versiones anteriores admitidas de Visual Studio.
Visual Studio 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