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?
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:
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 utilizandogit config lfs.fetchinclude
.