with what support source scmcom scm online everything branches and git perl svn

what - git svn clone error de información de índice mal formado



migrate svn to git with history and branches (13)

Cuando ejecuto git svn clone obtengo 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:

Excepción: STATUS_ACCESS_VIOLATION a 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, thread 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 única rama de SVN a través de git svn

Enlaces SVN de Python para Windows

subversion python enlaces documentación?

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


Verifica qué svn commit causó el problema.

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

El siguiente ejemplo muestra lo que el comando git svn clone genera cuando se comienza a procesar la revisión de Subversion 15 cuando el Git confirma 373fb1... :

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

Dividir el comando git svn clone usando la opción -r (revisió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 que la revisión 15 es la problemática, y el repositorio 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/


En mi caso, este error ocurrió con un gran repositorio. Intente clonar la subcarpeta si es posible.


En mi caso, no estaba conectado a nuestra VPN, que es necesaria para nuestra conexión svn. Este es mi error:

Exception: STATUS_ACCESS_VIOLATION at rip=00000000000 rax=0000000000000000 rbx=00000006010BBDA8 rcx=00000006010BBDA8 rdx=00000006010C40E8 rsi=0000000000000011 rdi=0000000000000000 r8 =0000000000000000 r9 =00000006010EBCA8 r10=0000000100000000 r11=000000049F2423C9 r12=00000000FFFFC190 r13=00000000FFFFC198 r14=00000006010B2DF8 r15=00000006010B2D68 rbp=00000000FFFFC1A8 rsp=00000000FFFFC138 program=C:/Program Files/Git/usr/bin/perl.exe, pid 7884, thread main cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B Stack trace: Frame Function Args End of stack trace


Este es el problema que tengo:

  • Sistema operativo: xubuntu 16.04
  • git-svn versión 2.7.4 (svn 1.9.3)

Información de rastreo de perl -d /usr/lib/git-core/git-svn fetch :

Signal SEGV at /usr/local/share/perl/5.22.1/Git/SVN/Fetcher.pm line 368 Git::SVN::Fetcher::apply_textdelta(Git::SVN::Fetcher=HASH(0x20ee160), HASH(0x2488a40), undef, _p_apr_pool_t=SCALAR(0x2488bf0)) called at /usr/lib/x86_64-linux-gnu/perl5/5.22/SVN/Ra.pm line 623 SVN::Ra::Reporter::AUTOLOAD(SVN::Ra::Reporter=ARRAY(0x8d0fa0), SVN::Pool=REF(0x20ee910)) called at /usr/local/share/perl/5.22.1/Git/SVN/Ra.pm line 308 Git::SVN::Ra::gs_do_update(Git::SVN::Ra=HASH(0x20df170), 42560, 42560, Git::SVN=HASH(0x20dea08), Git::SVN::Fetcher=HASH(0x20ee160)) called at /usr/local/share/perl/5.22.1/Git/SVN.pm line 1205 Git::SVN::do_fetch(Git::SVN=HASH(0x20dea08), HASH(0x20ee1d8), 42560) called at /usr/local/share/perl/5.22.1/Git/SVN/Ra.pm line 471 Git::SVN::Ra::gs_fetch_loop_common(Git::SVN::Ra=HASH(0x20df170), 42500, 95400, ARRAY(0x1637c08), ARRAY(0x1637c20)) called at /usr/local/share/perl/5.22.1/Git/SVN.pm line 179 Git::SVN::fetch_all("svn", HASH(0x20dee28)) called at /usr/lib/git-core/git-svn line 570 main::cmd_fetch() called at /usr/lib/git-core/git-svn line 386 eval {...} called at /usr/lib/git-core/git-svn line 384 Aborted (core dumped)

Finalmente solucioné este problema con los siguientes pasos (Esto es para usuarios de Ubuntu Linux 16.04):

sudo apt build-dep subversion sudo apt install libneon27-dev sudo cpan SVN::Core

Entonces puedo usar git svn fetch/clone sin ningún bloqueo.

La causa principal de este problema es que el script de la biblioteca Perl SVN :: Core no coincide con los binarios instalados en Perl (hay binarios de subversión separados instalados en Perl junto a los instalados en el sistema).

Tenga en cuenta que esto degradará la versión svn de su git-svn a 1.8.11 (antes de que sea 1.9.3), y podría causar otros problemas.


Obtuve este error al migrar el enorme repositorio svn a git usando la herramienta svn2git. Agregué líneas debajo 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

Estas configuraciones se explican en la página de manual de git-config .


Obtuve todo tipo de errores con git-svn, donde la secuencia de comandos perl moriría en varios lugares, la búsqueda se rompería o el servidor cortaría la conexión. Este fue un gran repositorio que tomó docenas de GB cuando se desprotegió a través de svn.

Lo que me solucionó esto fue simplemente usar SmartGit en lugar de git-svn. Requería Java 8, corría extremadamente rápido y no informaba errores, completando a la perfección en unas pocas horas la tarea que llevaba varios días.



Pude ver el svn repo correctamente usando Cygwin .


Puedo reproducir este problema todas las veces, y git svn funciona perfecto en

versión 1.9.5

Puede instalarlo desde Git-1.9.5-preview20141217.exe desde

https://github.com/msysgit/msysgit/releases/tag/Git-1.9.5-preview20141217

Me pregunto si alguien puede verificar la diferencia entre la versión anterior 1.9.5 y la versión actual (después de pasar de msysgit a aquí)

Es doloroso usar la versión anterior para git, solo porque el git svn no puede funcionar correctamente en la nueva versión.


Tenía excepciones y mensajes de error similares, para mí

git gc

y / o un

git svn gc

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


en mi caso, este error ocurrió en Ubuntu 16.04 y la versión es git-svn versión 2.17.0 (svn 1.9.3) después de ejecutar git svn --version command, cambio a mi MacOS, que versión es git-svn versión 2.17.0 (svn 1.7.20) después de ejecutar git svn --version command, luego volver a Ubuntu después de clonar y recuperar exitosamente y otras operaciones en MacOS.


Actualización: 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 al depurar las secuencias de comandos de Perl:

  • Reduzca la velocidad o manipule de algún modo la ejecución ejecutando git svn en el depurador Perl.

Inicie git svn fetch con el siguiente comando (puede que tenga que cambiar las rutas. Esto también debería funcionar con el clon). Asegúrese de ejecutar el comando dentro de su repositorio / directorio git:

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

Ingrese lo siguiente en el depurador y presione ENTER :

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

Esto básicamente 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 ingrese c para continuar la ejecución y presione ENTER .

¿Alguien puede explicar por qué esto ayuda?

Editar: Funcionó: ¡213000 revisiones y 1780 ramas clonadas en git!


Actualizado : el problema sigue ocurriendo después de git gc para mí. Probé todas las versiones de Git Windows (32 y 64 bits), pero aun así obtuve 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 ya que el problema que se plantea aquí - https://github.com/git-for-windows/git/issues/274 es casi 6 meses.

Actualizado : para agregar a la respuesta de Cenic, git gc solo funciona bien para git de 32 bits para Windows, para este problema en particular.

Creo que existe el problema de 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, el problema parece estar resuelto para mí.