¿Qué es Control de versiones de Team Foundation?

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

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. Los sistemas de control de versiones constan de software que le ayuda a realizar un seguimiento de los cambios realizados en el código a lo largo del tiempo. A medida que edita el código, indique al sistema de control de versiones que tome una instantánea de los archivos. El sistema de control de versiones guarda la instantánea de manera permanente para que pueda recuperarla más adelante si es necesario.

Azure DevOps Services y TFS proporcionan dos modelos de control de versiones: Git, que es un control de versiones distribuido, y Control de versiones de Team Foundation (TFVC), que es un control de versiones centralizado. En este artículo, se proporciona información general y un punto de partida para usar TFVC. Si decide qué tipo de control de versiones de TFS o Azure DevOps Services usar, consulte Elección del control de versiones adecuado para el proyecto.

¿Por qué usar el control de versiones?

Sin el control de versiones, se siente tentado a mantener varias copias del código en el equipo. Esto es peligroso, ya que es fácil cambiar o eliminar un archivo en la copia incorrecta del código, lo que podría hacer que perdiera el trabajo. Los sistemas de control de versiones solucionan este problema al administrar todas las versiones del código, pero presentan una sola versión a la vez.

Los sistemas de control de versiones proporcionan estas ventajas:

  • Creación de flujos de trabajo: los flujos de trabajo de control de versiones evitan el caos a todos los usuarios que usan el proceso de desarrollo con sus propias herramientas diferentes e incompatibles. Los sistemas de control de versiones proporcionan permisos y cumplimiento de procesos, por lo que todos permanecen en sintonía.
  • Trabajo con versiones: cada versión tiene una descripción de lo que hacen los cambios en la versión, como corregir un error o agregar una característica. Estas descripciones le ayudan a seguir los cambios del código por versión en lugar de por cambios de archivo individuales. El código almacenado en versiones se puede ver y restaurar desde el control de versiones en cualquier momento y según sea necesario. Esto facilita basar el trabajo nuevo en cualquier versión del código.
  • Programación conjunta: el control de versiones sincroniza las versiones y garantiza que los cambios no entren en conflicto con otros cambios del equipo. El equipo se basa en el control de versiones para ayudar a resolver y evitar conflictos, incluso cuando los usuarios realizan cambios al mismo tiempo.
  • Manutención de un historial: el control de versiones mantiene un historial de cambios a medida que el equipo guarda las versiones del código nuevas. Este historial se puede revisar para averiguar la persona que realizó los cambios, por qué lo hizo y en qué momento. El historial le ofrece la confianza de experimentar, ya que puede revertir a una versión anterior correcta en cualquier momento. El historial permite basar el trabajo desde cualquier versión del código, como corregir un error en una versión anterior.
  • Automatización de tareas: las características de automatización del control de versiones ahorran tiempo al equipo y generan resultados coherentes. Puede automatizar las pruebas, el análisis de código y la implementación cuando se guarden versiones nuevas en el control de versiones.

Hay muchas cosas que pueden ocupar su tiempo como desarrollador: reproducir errores, aprender herramientas nuevas y agregar características o contenido nuevos. A medida que las demandas de los usuarios se escalan verticalmente, el control de versiones ayuda a su equipo a trabajar juntos y enviar a tiempo.

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 máquinas 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 permite aplicar permisos granulares y restringir el acceso a un nivel de archivos. Como su equipo inserta todo el trabajo en Azure DevOps Server, puede controlar fácilmente los cambios realizados e identificar qué usuarios insertaron un conjunto de cambios en el repositorio. Con comparar y anotar, podrá identificar los cambios exactos que realizaron.

Guías de inicio rápido

Para empezar, cree un proyecto, configure el área de trabajo y revise y comparta el código. Puede usar cualquiera de estos clientes o IDE:

Tutoriales detallados

Conozca los conceptos básicos de trabajar en TFVC con este tutorial, que muestra un día en la vida de un desarrollador de DevOps que usa Visual Studio y TFVC.

¿Qué desea hacer?

  • Configurar el control de versiones de Team Foundation en el equipo de desarrollo

    Invierta unos minutos en configurar el equipo de desarrollo para aprovechar todas las ventajas de un código base con control de versiones.

  • Decidir entre usar un área de trabajo local o de servidor

    • Á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.

  • Desarrollo de la aplicación en Control de versiones de Team Foundation

    La mayoría de las veces no hay que pensar en el control de versiones. El sistema le ayuda cuando necesita administrar y entender sus cambios.

  • Suspender el trabajo

    A veces es necesario aplazar todo o parte del trabajo que está realizando. El sistema de control de versiones puede evitarle algunas molestias y reducir el tiempo que se pierde por las interrupciones.

  • Proteger su contribución al código base del equipo

    Inserte en el repositorio los cambios para que el equipo pueda compilar, probar y publicar el valioso trabajo que ha creado.

  • Aislar riesgos

    Utilice bifurcaciones y bloqueos para aislar el riesgo que puede conllevar el trabajo realizado por equipos diferentes.

  • Ver y administrar versiones pasadas

    Una ventaja de un sistema del control de versiones es que se puede volver atrás en el tiempo para obtener información detallada sobre qué cambios se realizaron en los archivos.

  • Comparación de archivos con Control de versiones de Team Foundation

    Puede comparar las carpetas del servidor y las carpetas locales entre sí y ver las diferencias entre el contenido de cada carpeta.

  • Resolver conflictos del control de versiones de Team Foundation

    Una gran ventaja de utilizar el control de versiones es que varias personas pueden trabajar simultáneamente en un archivo. Una desventaja es que a veces debe resolver conflictos. Aunque puede ser frustrante encontrar conflictos, el sistema proporciona información y herramientas que le ayudarán a entenderlos y resolverlos.

  • Trabajo con bloqueos del control de versiones

    Cuando necesite evitar la desprotección y alteración de un archivo o carpeta, puede bloquearlo.

Operaciones disponibles solo desde la línea de comandos tf

En esta tabla se enumeran las tareas de TFVC que solo puede realizar en un símbolo del sistema con la herramienta de línea de comandos tf.

Tarea Get-Help
Eliminar el área de trabajo de otro usuario. workspace con la opción /delete
Deshacer la extracción del repositorio de otro usuario. undo
Quitar el bloqueo de otro usuario. lock
Definir el ámbito de etiqueta. label
Realizar una fusión mediante combinación sin base. merge
Destruir el contenido permanentemente. destroy
Revertir el efecto de uno o varios conjuntos de cambios. rollback