es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Importación de Bitbucket a Azure DevOps, incluyendo LFS.

Tenemos un servidor de BitBucket y nos gustaría migrar el repositorio a Azure DevOps. Esto se puede lograr utilizando la opción de Importar repositorio en Azure DevOps, pero cuando clonamos el repositorio de Azure DevOps, obtenemos un error relacionado con los elementos LFS (básicamente “No se encontraron elementos LFS“).

He intentado lo siguiente:
1. git clone <URL de clonación de BitBucket>, luego
2. cd <repositorio>, luego
3. git lfs fetch –all, luego
4. git remote set-url origin <nueva URL de clonación de Azure DevOps>, luego
5. git push --mirror origin, y finalmente
6. git lfs push origin --all.

Y esto no ha funcionado realmente. El tamaño del repositorio clonado de BitBucket no es el mismo que el del repositorio clonado de Azure DevOps (¿así es como se compara si la parte de LFS ha funcionado, verdad?).

Esto es lo que hemos observado al realizar los pasos anteriores:
1. Cuando clonamos solo el repositorio de BitBucket localmente, solo se muestra la rama principal (master). Si ejecuto git checkout -b <nombre_de_rama>, aparece localmente (en rojo). Entiendo que este es el comportamiento estándar.
2. git lfs fetch –all recupera los elementos LFS cuyo tamaño total es inferior a 40 MB (no GB). ¿Es esto normal?
3. git push --mirror origin se completa correctamente.
4. git lfs push origin --all se completa correctamente.

Esto no ha ayudado (aunque el error de LFS ya no aparece), porque solo vemos la rama principal en Azure DevOps [NOTA: Actualmente no estamos realizando la importación directa de BitBucket a Azure DevOps, estamos clonando el repositorio de BitBucket, luego recuperando LFS y luego enviándolo a Azure DevOps]. Hay al menos 50 – 60 ramas en el repositorio de BitBucket. ¿Necesitamos hacer git checkout -b <nombre_de_rama> manualmente y luego git push, o hay una manera más fácil de lograr esto?

Otra cosa que hemos intentado es importar directamente el repositorio de BitBucket a Azure DevOps, luego clonar el antiguo por separado y seguir los 6 pasos anteriores para LFS. Ahora, debido a que es una importación directa, todas las ramas se muestran inicialmente. Pero descubrimos que después del paso #6 (git lfs push origin --all), el repositorio de Azure DevOps solo contiene la rama principal. Todo lo demás se elimina/borra.

Espero que todo esté claro.

No sé realmente qué está sucediendo. ¿Puede ayudar, por favor?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Migración de un repositorio de BitBucket a Azure DevOps con elementos LFS

    Si has intentado importar un repositorio de BitBucket a Azure DevOps y has encontrado un error relacionado con los elementos LFS al clonar el repositorio recién creado, sigue los siguientes pasos:

    1. Primero, clona el repositorio de BitBucket localmente:
    git clone <url de="" clonación="" de="" bitbucket="">
    
    1. Descarga todos los elementos LFS:
    cd <repositorio>
    git lfs fetch --all
    
    1. Establece la URL remota para el nuevo repositorio de Azure DevOps:
    git remote set-url origin <url de="" clonación="" de="" azure="" devops="">
    
    1. Haz push de todas las ramas locales y sus objetos LFS asociados a Azure DevOps:
    git push --mirror origin
    git lfs push origin --all
    

    Después de seguir estos pasos, verifica el repositorio de Azure DevOps para asegurarte de que todas las ramas se hayan empujado correctamente. Si solo aparece la rama principal, intenta hacer el checkout manual de cada rama y empujarlas a Azure DevOps. Alternativamente, trata de volver a importar el repositorio de BitBucket directamente en Azure DevOps y repite los pasos anteriores.

    Ten en cuenta que git lfs fetch --all solo descargará objetos LFS cuyo tamaño total sea inferior a 40 MB. Si tu repositorio contiene objetos LFS más grandes, es posible que debas descargarlos individualmente o aumentar el límite utilizando git config lfs.fetchinclude.

Comments are closed.