2009-08-31 18 views
17

Estoy tratando de importar un gran repositorio de subversión en git usando git-svn (de modo que puedo trabajar en git pero aun así comprometo a subversión de vez en cuando). Después de importar más de 4000 revisiones ahora estoy consiguiendo el error siguiente cada vez que corro git svn fetch o git svn rebase, que no logro deshacerse de:fatal: git-write-tree: error construyendo árboles

$ 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 de nada, tampoco lo hace git fsck --unreachable o git fsck --no-reflog
  • git gc --aggressive no ayuda
  • mover el archivo solo paquete de distancia y reimportarlo con git unpack-objects no ayuda
  • git svn reset -rXY con XY un poco más bajo que la última revisión importada tampoco parece ayudar, tampoco elimina manualmente las últimas entradas del reflog hasta XY.
  • reinicio. Suena tonto, pero sí observé algunos problemas extraños al importar la primera revisión ~ 4000, como si algo estuviera filtrando una gran cantidad de recursos del núcleo (muy probablemente en el subsistema Windows), podría estar relacionado con msys/mingw (o el escáner de virus avira, que desactivé para probar)

Tampoco averiguo qué es realmente el error 128. ¿Algunas ideas? ¡Gracias por adelantado!

Podría estar relacionado con this question que también tiene que ver con el error 128 pero con diferentes mensajes de error y sin solución.

msysgit versión 1.6.4.msysgit.0 con bash en XP SP3

+1

Pregunte en la lista de correo git ([email protected]), no necesita suscribirse a la publicación (y hay algunas interfaces web para leerlo, incluyendo Gmane y MARC) –

Respuesta

34

git svn gc

(posiblemente git gc y git prune antes)

+0

¡Gracias, eso funcionó! No sé si gc/prune fueron necesarios, los hago de forma rutinaria. – Tobu

+0

Intenté todos sin resolverlo ... –

+0

Tuve este problema.Ejecutando solo 'git svn gc' sin' git gc' y 'git prune' lo solucionó por mí. – thakis

4

Respuesta corta: tratar de resolver cualquier conflictos de fusión, comprometiéndose ellos, y FETCH/tirar de nuevo .

Explicación más larga: Supongo que resolvió este problema, ya que se publicó hace mucho tiempo. Escribo esto porque la clasificación de Google de los artículos de StackOverflow es lo suficientemente alta como para que otras personas con este problema puedan visitar esta página si tuvieran este error.

Me encontré con un error similar al intentar hacer un "alijo git", lo que resultó ser el problema era que se había producido un conflicto de fusión después de un tirón. No resolví & cometí el conflicto, y esto dejó el repositorio en un estado que me impedía tirar/fusionar/etc ...

Si se asegura de que no tiene ningún archivo de bloqueo, inténtelo de nuevo.

¡Buena suerte!

Cuestiones relacionadas