Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Puede migrar código de un repositorio existente de Control de versiones de Team Foundation (TFVC) a un nuevo repositorio de Git dentro de la misma organización. La migración a Git es un proceso implicado para los grandes repositorios y equipos de TFVC. Los sistemas de control de versiones centralizados, como TFVC, se comportan de forma diferente de Git de maneras fundamentales. El modificador implica mucho más que aprender nuevos comandos. Es un cambio disruptivo que requiere una planificación cuidadosa. Debe pensar en lo siguiente:
- Revisión de herramientas y procesos
- Eliminación de archivos binarios y ejecutables
- Entrenamiento de su equipo
Prerrequisitos
| Categoría | Requisitos |
|---|---|
| Acceso al proyecto | Miembro de un proyecto. |
| Permisos | - Ver código en proyectos privados: al menos acceso básico . - Clone o contribuya al código en proyectos privados: miembro del grupo de seguridad Colaboradores o de los permisos correspondientes del proyecto. - Establecer permisos de rama o repositorio: administre permisos para la rama o el repositorio. - Cambiar la rama predeterminada: edite los permisos de directivas para el repositorio. - Importar un repositorio: miembro del grupo de seguridad Administradores de proyectos o del nivel de proyecto de Git Crear conjunto de permisos de repositorio en Permitir. Para obtener más información, consulte Establecimiento de permisos de repositorios Git. |
| Servicios | Repositorios habilitados. |
| Herramientas | Optional. Use los comandos az repos : CLI de Azure DevOps. |
Nota:
En proyectos públicos, los usuarios con acceso a las partes interesadas tienen acceso completo a Azure Repos, incluida la visualización, la clonación y la contribución al código.
| Categoría | Requisitos |
|---|---|
| Acceso al proyecto | Miembro de un proyecto. |
| Permisos | - Ver código: al menos acceso básico . - Clone o contribuya al código: miembro del grupo de seguridad Colaboradores o de los permisos correspondientes del proyecto. |
| Servicios | Repositorios habilitados. |
Se recomienda encarecidamente leer el control de versiones centralizado en Git y la sección Migrar de TFVC a Git antes de iniciar la migración.
La experiencia de importación es ideal para repositorios TFVC pequeños y sencillos. También es adecuado para repositorios que ya están limpios, como se describe en Control de versiones centralizado a Git y la sección Migración de TFVC a Git . En estas secciones también se recomiendan otras herramientas para configuraciones de repositorio de TFVC más avanzadas.
Importante
Debido a las diferencias en el modo en que TFVC y git almacenan el historial de control de versiones, se recomienda no migrar el historial, que es el enfoque que Microsoft tomó al migrar Windows y otros productos de control de versiones centralizado a Git.
Importación del repositorio
Seleccione Repositorios, Archivos.
En la lista desplegable repositorio, seleccione Importar repositorio.
Seleccione TFVC en la lista desplegable Tipo de origen .
Escriba la ruta de acceso al repositorio, rama o carpeta que desea importar en el repositorio de Git. Por ejemplo:
$/Fabrikam/FabrikamWebsiteSi desea migrar el historial desde el repositorio de TFVC, seleccione Migrar historial y seleccione el número de días. Puede migrar hasta 180 días de historial a partir del conjunto de cambios más reciente. Se agrega un vínculo al repositorio TFVC en el mensaje de confirmación del primer conjunto de cambios que se migra a Git, lo que facilita la búsqueda del historial anterior cuando sea necesario.
Asigne un nombre al nuevo repositorio de Git y seleccione Importar. Según el tamaño de la importación, el repositorio de Git estará listo en unos minutos.
Solución de problemas
Esta experiencia está optimizada para repositorios pequeños, sencillos de TFVC o repositorios preparados para una migración. Esto significa que tiene algunas limitaciones.
- Solo migra el contenido de la raíz o de una rama. Por ejemplo, si tiene un proyecto TFVC en
$/Fabrikamel que tiene una rama y una carpeta en ella, una ruta de acceso para importar$/Fabrikamimportaría la carpeta, mientras$/Fabrikam/<branch>que solo importaría la rama. - El repositorio importado y el historial asociado (si se importan) no pueden superar los 1 GB de tamaño.
- Puede importar hasta 180 días de historial.
Si alguna de las informaciones enumeradas anteriormente es un bloqueador para la importación, se recomienda probar herramientas externas como Git-TFS para importar y leer nuestras notas del producto: control de versiones centralizado a Git y la siguiente sección Migrar de TFVC a Git .
Importante
El uso de herramientas externas como Git-TFS con productos, servicios o plataformas de Microsoft es responsabilidad total del usuario. Microsoft no aprueba, admite ni garantiza la funcionalidad, confiabilidad ni seguridad de dichas extensiones que no son de Microsoft.
Migración de TFVC a Git
Antes de migrar el código fuente de un sistema de control de versiones centralizado a Git, comprenda las diferencias entre los dos y prepárese para la migración.
Requisitos
Para facilitar las migraciones, hay muchos requisitos antes de seguir el procedimiento de importación del repositorio en la sección anterior de este artículo.
- Migre solo una sola rama. Al planear la migración, elija una nueva estrategia de bifurcación para Git. La migración solo de la rama principal admite un flujo de trabajo basado en rama de temas, como Gitflow o GitHub Flow.
- Realice una migración de propinas, como en, importe solo la versión más reciente del código fuente. Si el historial de TFVC es sencillo, puede optar por migrar algún historial, hasta 180 días, para que el equipo solo pueda trabajar fuera de Git. Para más información, consulte Planeamiento de la migración a Git.
- Excluya recursos binarios como imágenes, conjuntos de datos científicos o modelos de juego del repositorio. Estos recursos deben usar la extensión LFS de Git (almacenamiento de archivos grandes), que la herramienta de importación no configura.
- Mantenga el repositorio importado por debajo de 1 GB de tamaño.
Si el repositorio no cumple estos requisitos, use la herramientaGit-TFS para realizar la migración en su lugar.
Importante
El uso de herramientas externas como Git-TFS con productos, servicios o plataformas de Microsoft es responsabilidad total del usuario. Microsoft no aprueba, admite ni garantiza la funcionalidad, confiabilidad ni seguridad de dichas extensiones que no son de Microsoft.
Migrate
El proceso de migración desde TFVC es sencillo:
- Consulte la versión más reciente de la rama desde TFVC en el disco local.
- Quite los archivos binarios y las herramientas de compilación del repositorio y configure un sistema de administración de paquetes como NuGet.
- Convertir directivas de configuración específicas del control de versiones. Por ejemplo, convierta
.tfignorearchivos en.gitignorey convierta.tpattributesarchivos en.gitattributes. - Compruebe los cambios y realice la migración a Git.
Los pasos 1 a 3 son opcionales. Si no hay archivos binarios en el repositorio y no es necesario configurar o .gitignore.gitattributes, puede continuar directamente con los cambios de comprobación y realizar el paso de migración .
Consulte la versión más reciente.
Cree un área de trabajo y asigne una carpeta de trabajo para el directorio del servidor que se va a migrar a Git. Esta acción no requiere una asignación completa de carpetas de trabajo. Solo las carpetas de mapa que contienen archivos binarios que se van a quitar del repositorio y las carpetas que contienen archivos de configuración específicos del sistema de control de versiones, como .tfignore.
Una vez configuradas las asignaciones, obtenga la carpeta localmente:
tf get /version:T /recursive
Eliminación de archivos binarios y herramientas de compilación
Dado que Git almacena el historial de archivos modificados proporcionando una copia de cada archivo del historial a cada desarrollador, la comprobación de archivos binarios directamente en el repositorio puede hacer que el repositorio crezca rápidamente y genere problemas de rendimiento.
Para herramientas de compilación y dependencias como bibliotecas, adopte una solución de empaquetado con compatibilidad con versiones, como NuGet. Muchas herramientas y bibliotecas de código abierto ya están disponibles en la Galería de NuGet, pero para las dependencias propietarias, cree nuevos paquetes NuGet.
Una vez que las dependencias se muevan a NuGet, asegúrese de que no se incluyen en el repositorio de Git al agregarlas a .gitignore.
Conversión de la configuración específica del control de versiones
El control de versiones de Team Foundation proporciona un .tfignore archivo, lo que garantiza que determinados archivos no se agreguen al repositorio TFVC. Puede usar el .tfignore archivo para archivos generados automáticamente como la salida de compilación para que no se protejan accidentalmente.
Si el proyecto se basa en este comportamiento, convierta el .tfignore archivo en un .gitignore archivo.
Los clientes TFVC multiplataforma también proporcionan compatibilidad con un .tpattributes archivo que controla cómo se colocan los archivos en el disco local o se registran en el repositorio. Si un .tpattributes archivo está en uso, conviértelo en un .gitattributes archivo.
Comprobación de los cambios y realización de la migración
Compruebe los cambios que quiten archivos binarios, migren a la administración de paquetes o conviertan la configuración específica del control de versiones. Una vez realizado este cambio final en TFVC, puede realizar la importación.
Migraciones avanzadas
La herramientaGit-TFS es un puente bidireccional entre TFVS y Git, y puede usarlo para realizar una migración. Git-TFS es adecuado para una migración con historial completo, más de los 180 días que admite la herramienta de importación. O bien, puede usar Git-TFS para intentar una migración que incluya varias ramas y relaciones de combinación.
Antes de intentar realizar una migración con Git-TFS, tenga en cuenta las siguientes diferencias fundamentales entre la forma en que TFVC y el historial del almacén de Git:
- Git almacena el historial como una instantánea del repositorio en el tiempo, mientras que TFVC registra las operaciones discretas que se produjeron en un archivo. Los tipos de cambio en TFVC como cambiar el nombre, recuperar y revertir no se pueden expresar en Git. En lugar de ver que se cambió el nombre del archivo
Aal archivoB, solo realiza un seguimiento de que se eliminó el archivo y el archivoABse agregó en la misma confirmación. - Git no tiene una analogía directa de una etiqueta TFVC. Las etiquetas pueden contener cualquier número de archivos en cualquier versión específica y pueden reflejar archivos en diferentes versiones. Aunque conceptualmente es similar, las etiquetas de Git apuntan a una instantánea del repositorio completo en un momento dado. Si el proyecto se basa en etiquetas TFVC para saber qué se ha entregado, es posible que las etiquetas de Git no proporcionen esta información.
- Las combinaciones en TFVC se producen en el nivel de archivo, no en todo el repositorio. Solo se puede combinar un subconjunto de archivos modificados de una rama a otra. Los archivos modificados restantes se pueden combinar en un conjunto de cambios posterior. En Git, una combinación afecta a todo el repositorio y ambos conjuntos de cambios individuales no se pueden ver como una combinación.
Debido a estas diferencias, se recomienda realizar una migración de propinas y mantener el repositorio de TFVC en línea, pero de solo lectura, para ver el historial.
Para intentar una migración avanzada con Git-TFS, consulte Clonación de una sola rama con historial o clonación de todas las ramas con historial de mezcla.
Importante
El uso de herramientas externas como Git-TFS con productos, servicios o plataformas de Microsoft es responsabilidad total del usuario. Microsoft no aprueba, admite ni garantiza la funcionalidad, confiabilidad ni seguridad de dichas extensiones que no son de Microsoft.
Actualización del flujo de trabajo
Pasar de un sistema de control de versiones centralizado a Git es más que simplemente migrar código. El equipo necesita entrenamiento para comprender cómo Git es diferente del sistema de control de versiones existente y cómo afectan estas diferencias al trabajo diario.
Obtenga más información sobre cómo migrar desde el control de versiones centralizado a Git.