tortoise software migrar consola git git-svn

software - migrar svn a git



Error fatal al desempacar un objeto de árbol durante una captura de git svn (3)

La causa más probable para esto es un archivo o confirmación (que el árbol hace referencia) está dañado o falta. O el árbol en sí mismo podría estar dañado. Comprobar con:

git fsck --unreachable HEAD $(cat .git/refs/heads/*)

Esto mostrará un montón de archivos "colgantes", que no te importan; los archivos dañados informarán "SHA1 no válido" o algo por el estilo. No sé cómo reportaría un archivo faltante. Elimine los elementos dañados y rsync de su repositorio de origen para reemplazarlos.

Al ejecutar get svn fetch para extraer las últimas nuevas ramas del repositorio svn en sentido ascendente, recibí este error:

$ git svn fetch fatal: failed to unpack tree object 5ecb324e8b8fcb918acb253f33edc6ce49e49e0d read-tree 5ecb324e8b8fcb918acb253f33edc6ce49e49e0d: command returned error: 128

Ahora, cada intento de git svn en ese repos local produce el mismo error. Originalmente estaba ejecutando git versión 1.5.6.4_0 y después del error intenté actualizar a 1.6.0.2_2 y el problema aún persiste.

¿Hay alguna manera de limpiar esta corrupción? Un nuevo clon git svn del repositorio en sentido ascendente está bien, pero me gustaría conservar mi configuración existente. Revisé los documentos y busqué en Google el problema sin suerte.


Yo tuve el mismo problema. Se debe a una revisión SVN particular que git-svn no puede leer o tratar de alguna manera. Esto es lo que intenté en orden:

  1. Rebobinar a una revisión que se sabe que funciona: git svn reset -r 42
  2. Vuelva a intentar la recuperación: git svn fetch : git svn fetch cada revisión comenzando desde 42 hasta la culpable (digamos 50), y luego muestra el mismo mensaje de error.
  3. Obtener el padre: git svn fetch --parent - No me preguntes por qué. Eso trae más revisiones. Sin embargo, ni idea de si es relevante.
  4. Vuelva a intentar la recuperación: git svn fetch - Aún no funciona.
  5. Obtenga cada una de las siguientes revisiones:
    1. git svn fetch -r 50 - Funciona.
    2. git svn fetch -r 51 - Si bien no hay un mensaje de error, continúa.
    3. git svn fetch -r xx - Aparece el mensaje de error, es la mala revisión. No me importa
    4. git svn fetch -r xx+1 - Funciona.
  6. Vuelve a intentar la recuperación: git svn fetch - ¡Funciona! Comienza a buscar más revisiones.

El proceso debe ser limpiado (probablemente cerca de los primeros pasos), pero funcionó para mí, sin tener que volver a comenzar con un nuevo clon.


Experimenté el mismo mensaje de error después de crear una nueva rama SVN. Pude resolver el problema eliminando el directorio completo ".git / svn" y obteniendo de SVN nuevamente:

$ rm -rf .git/svn $ git svn fetch Rebuilding .git/svn/refs/remotes/trunk/.rev_map.1d5df120-ff1b-4f4f-af56-171ecbcc785d ...

Esto obtuvo todas las confirmaciones de SVN nuevamente y resolvió el error.