git git-svn corruption msysgit

fatal: git-write-tree: error construyendo arboles



git-svn corruption (2)

Estoy tratando de importar un repositorio de subversion grande en git usando git-svn (de modo que pueda trabajar en git pero aún así dcommit a subversion de vez en cuando). Después de importar más de 4000 revisiones, ahora obtengo el siguiente error cada vez que ejecuto git svn fetch o git svn rebase , que no logro eliminar:

$ git svn fetch error: invalid object 100644 1f2....742 for ''src/path/.../file.cs'' fatal: git-write-tree: error building trees write-tree: command returned error: 128

Lo que he probado hasta ahora:

  • git fsck --full no informa nada, tampoco git fsck --unreachable o git fsck --no-reflog
  • git gc --aggressive no ayuda
  • mover el archivo de un solo paquete y reimportarlo con git unpack-objects no ayuda
  • git svn reset -rXY con XY un poco más bajo que la última versión importada tampoco parece ayudar, ni tampoco remueve manualmente las últimas entradas desde la reflog hasta XY.
  • reiniciar. Suena tonto, pero observé algunos problemas extraños al importar la primera revisión ~ 4000, ya que si algo perdía muchos recursos del kernel (probablemente en el subsistema Windows), podría estar relacionado con msys / mingw (o el escáner de virus Avira, que deshabilité para la prueba).

Tampoco descubrí lo que realmente significa el error 128. ¿Algunas ideas? ¡Gracias por adelantado!

Podría estar relacionado con esta pregunta, que también se trata del error 128 pero con diferentes mensajes de error y sin una solución.

msysgit versión 1.6.4.msysgit.0 con bash en xp sp3


Respuesta corta: intente resolver cualquier conflicto de combinación, cometerlos y volver a buscar / extraer.

Explicación más larga: supongo que resolvió este problema, ya que se publicó hace tanto tiempo. Estoy escribiendo esto ya que el ranking de artículos de de Google es lo suficientemente alto como para que otras personas con este problema puedan visitar esta página si tuvieran este error.

Encontré un error similar cuando intenté hacer un "escondite de git", lo que resultó ser el problema fue que se había producido un conflicto de fusión después de un tirón. No había resuelto y cometido el conflicto, y esto dejó el repositorio en un estado que me impedía tirar / fusionar / etc ...

Si te aseguras de no tener ningún archivo bloqueado, inténtalo de nuevo.

¡Buena suerte!


git svn gc

(posiblemente git gc y git prune antes)