git svn clon error de información de índice mal formado

7 minutos de lectura

avatar de usuario
Aelphaeis

Cuando ejecuto git svn clone me sale el siguiente error:

  0 [main] perl 24432 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump
  fatal: malformed index info 100644 362f1c18ceed5d593eb021432545685283a93 

Cuando abro el archivo veo lo siguiente:

Exception: STATUS_ACCESS_VIOLATION at rip=0048360C537 rax=00000006039F81E0 rbx=000000005219E248 rcx=000000060003A3C0 rdx=0000000000000000 rsi=000000000000FDB4 rdi=0000000000000004 r8 =0000000000000000 r9 =0000000000000000 r10=0000000000230000 r11=000000048D785FBA r12=0000000000000003 r13=000006FFFF7FEDB8 r14=00000006014D4030 r15=000006FFFF7FEDD0 rbp =000000000007EDA8 rsp=000000000022BE80 programa=C:\Archivos de programa\Git\usr\bin\perl.exe, pid 24432, hilo principal cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B

Revisé los siguientes enlaces:

Error con el clon de Git SVN

Problema al clonar una sola rama SVN a través de git svn

Enlaces Python SVN para Windows

subversion python enlaces documentación?

Desafortunadamente, no estoy lo suficientemente familiarizado con las tecnologías subyacentes para averiguar exactamente lo que debería estar haciendo. ¿Podría estar causando esto y cómo podría resolverlo?

  • Voto para cerrar esta pregunta como fuera de tema porque SO no es un lugar para discutir un error conocido específico de un software. Deberían reportarlo a bugzilla o mailing donde deba

    – Dennis C.

    25 de septiembre de 2015 a las 5:17

  • Para mí, la forma más efectiva de resolver este y otros problemas durante la migración de un gran proyecto de SVN a Git (en Windows) fue realizar el git svn clone ... cosa no en Windows pero en Linux. Rápidamente configuré un ubuntu 20 La máquina VMware y todo el proceso de migración se ejecutaron correctamente sin ningún errores (y tuve muchos de ellos en Windows antes).

    – Uwe Keim

    9 dic 2021 a las 21:07

avatar de usuario
Rajat Srivastava

Recibí este error al migrar un enorme repositorio svn a git usando la herramienta svn2git. Agregué las siguientes líneas en mi archivo .git/config y comenzó a funcionar:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = dotGitOnly
    packedGitLimit = 256m
    packedGitWindowSize = 256m
    longpaths = true
[http]
    postBuffer = 524288000
[pack]
  deltaCacheSize = 256m
  packSizeLimit = 256m
  windowMemory = 1024m

Estos ajustes se explican en la página de manual de git-config.

  • También solucionó el problema para mí. Las únicas dos configuraciones que tuve que cambiar fueron core.packedGitLimit y core.packedGitWindowSize

    – con

    22 de junio de 2016 a las 16:39

  • longpaths = true me estaba ayudando! ¡Gracias!

    – derFunk

    12 de agosto de 2016 a las 14:38

  • para mi fue postBuffer = 134217728 eso ayudó (aumentar este valor ya ayudó, hacerlo aún más grande, como en el ejemplo anterior, también ayudaría).

    – JonnyJD

    14/09/2016 a las 15:24

  • Asumo symlinks=false, filemode=false y ignorecase=true aplicar solo a Windows?

    – Tobías Kienzler

    12/10/2016 a las 18:23

avatar de usuario
matthias.lukaszek

Actualizar: Después de actualizar a Ubuntu 17.04 con 2.11.0 y git-svn 1:2.11.0-2ubuntu0.2, el clon funcionó a la perfección.

Encontré una solución divertida para ese problema mientras realizaba la depuración a través de los scripts de Perl:

  • Reduzca la velocidad o manipule de alguna manera la ejecución ejecutando git svn en el depurador de perl.

comienzo git svn fetch con el siguiente comando (es posible que deba cambiar las rutas. Esto también debería funcionar con la clonación). Asegúrate de ejecutar el comando dentro de tu directorio/repositorio de git:

perl -d /usr/lib/git-core/git-svn fetch

Ingrese lo siguiente en el depurador y presione INGRESAR:

b /usr/share/perl5/Git/SVN/Fetcher.pm:368 $base==undef or $dup==undef

Básicamente, esto agrega un punto de interrupción condicional en la posición donde obtengo la señal 11. Esta es la línea de código:

[ SVN::TxDelta::apply($base, $dup, undef, $fb->{path}, $fb->{pool}) ];

Luego ingresa c para continuar la ejecución y pulsar INGRESAR.

¿Alguien puede explicar por qué esto ayuda?

Editar: funcionó: ¡213000 revisiones y 1780 sucursales clonadas en git!

  • ¡Gracias! ¡Esta solución funcionó para mí! Otras soluciones, como actualizar git/svn, editar .git/config, usar 64 bits (SO o/y git) o ​​Linux, no ayudaron. Sin embargo, tuve otro problema (máximo de archivos abiertos), pero este ayudó a stackoverflow.com/a/24796466/199225

    –Krystian Bigaj

    14 de octubre de 2016 a las 7:14

  • Esto ayudó mucho como solución alternativa, pero aún es necesario encontrar la solución.

    – lcltj

    07/03/2017 a las 22:05


  • Dios mío, sí, esto también funcionó para mí. Que extraño. ¡Gracias!

    – caleb c.

    1 de noviembre de 2017 a las 23:40

avatar de usuario
céntrico

Tuve excepciones y mensajes de error similares, para mí un

git gc

y/o un

git svn gc

devolvió el repositorio a un estado utilizable. Ver también https://stackoverflow.com/a/1436386/411846

  • dado que ‘git svn clone’ es creando un repositorio, ¿dónde ejecutaste estos comandos?

    – usuario simple

    18 de septiembre de 2017 a las 14:01

  • Acabo de ver el mismo mensaje de error, puede haber sido después de hacer “git svn clone” antes, sinceramente, ya no recuerdo con todo detalle ahora.

    – céntrico

    18/09/2017 a las 17:47

avatar de usuario
PPD

Compruebe qué svn commit causó el problema.

Los compromisos son emitidos por el git svn clone comando, precedido por un r. El último compromiso que se genera es el problemático.

El siguiente ejemplo muestra lo que el git svn clone salidas de comando cuando comience a procesar el Revisión de subversión 15 como el Confirmar 373fb1...:

r15 = 373fb1de430a6b1e89585425f276aae0058c3deb (refs/remotes/svn/trunk)

dividir el git svn clone comando usando el -r (revisión) opción

Usa este método:

git svn clone -r 0:<problematic_revision - 1> <repo URL>
git svn clone -r <problematic_revision - 1>:problematic_revision <repo URL>
git svn clone -r <problematic_revision>:HEAD <repo URL>

Suponiendo la revisión 15 como la problemática, y el repo en /tmp/svn/repo/la solución sería:

git svn clone -r  0:14   file:///tmp/svn/repo/
git svn clone -r 14:15   file:///tmp/svn/repo/
git svn clone -r 15:HEAD file:///tmp/svn/repo/

avatar de usuario
maullar

Actualizado – El problema aún ocurre después de git gc para mí. Probé todas las versiones de git windows (tanto de 32 como de 64 bits), pero aún recibí este error. Luego cambié a usar git en Linux y funciona bien para mí, incluso para confirmaciones extremadamente grandes. Recomiendo cambiar a Linux; de lo contrario, no tendrá suerte con el problema planteado aquí: https://github.com/git-for-windows/git/issues/274 tiene casi 6 meses.

Actualizado – Para agregar a la respuesta de centic, el git gc solo funciona bien para git de 32 bits para Windows, para este problema en particular.

Creo que el problema existe para git de 64 bits para Windows. Estaba teniendo el mismo problema con git de 64 bits, pero después de cambiar a git 2.7.2 Windows de 32 bits, los problemas parecen estar resueltos para mí.

  • Cambié a 32 bits de 64 bits. ¡Y lo resolví! Gracias.

    – Desarrollador

    22 de abril de 2016 a las 1:04

avatar de usuario
marc w.

Para mí, la única solución que funcionó fue usar una versión anterior de Git. Usé el paquete portátil de Git 1.8.3 que se puede descargar aquí:

https://github.com/msysgit/msysgit/releases/tag/Git-1.8.3-preview20130601

con él no hubo necesidad de ediciones de .git/config, pagos divididos o declaraciones de depuración de perl.

  • Cambié a 32 bits de 64 bits. ¡Y lo resolví! Gracias.

    – Desarrollador

    22 de abril de 2016 a las 1:04

avatar de usuario
feos

Recibía todo tipo de errores con git-svn donde el script perl moría en varios lugares, la recuperación se interrumpía o el servidor cortaba la conexión. Este fue un gran repositorio que tomó docenas de GB cuando se verificó a través de svn.

Lo que resolvió esto para mí fue simplemente usar SmartGit en lugar de git-svn. Requería Java 8, funcionaba extremadamente rápido y no reportaba ningún error, completando sin problemas en unas pocas horas la tarea que tomó varios días.

  • Suena como una buena idea… pero qué asco, solo es de uso gratuito para uso no comercial ;-(

    – Gato fantasma

    3 mayo 2017 a las 12:36

¿Ha sido útil esta solución?