web-dev-qa-db-fra.com

erreur info index malformée avec gn svn clone

Lorsque j'exécute git svn clone, l'erreur suivante apparaît:

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

Lorsque j'ouvre le fichier, je vois ce qui suit: 

Exception: STATUS_ACCESS_VIOLATION à 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 programme = C:\Program Files\Git\usr\bin\Perl.exe, pid 24432, thread principal cs = 0033 ds = 002B es = 002B fs = 0053 gs = 002B ss = 002B

J'ai vérifié les liens suivants: 

Erreur avec le clone Git SVN

Problème lors du clonage d'une branche SVN via git svn

Liaisons SVN Python pour Windows

Documentation sur les liaisons Python Subversion?

Malheureusement, je ne suis pas assez au courant pour que les technologies sous-jacentes comprennent exactement ce que je devrais faire. Cela pourrait être la cause et comment pourrais-je être capable de résoudre?

36
Aelphaeis

J'ai eu cette erreur lors de la migration d'un énorme référentiel svn vers git à l'aide de l'outil svn2git. J'ai ajouté des lignes ci-dessous dans mon fichier .git/config et cela a commencé à fonctionner:

[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

Ces paramètres sont expliqués à la page de manuel git-config .

18
Rajat Srivastava

Mise à jour: Après la mise à jour vers Ubuntu 17.04 avec 2.11.0 et git-svn 1: 2.11.0-2ubuntu0.2, le clone a parfaitement fonctionné.

J'ai trouvé une solution amusante à ce problème lors du débogage à l'aide des scripts Perl: 

  • Ralentissez ou manipulez d'une manière ou d'une autre l'exécution en exécutant git svn dans le débogueur Perl.

Démarrez git svn fetch à l'aide de la commande suivante (vous devrez peut-être modifier les chemins. Cela devrait également fonctionner avec clone). Assurez-vous d’exécuter la commande dans votre répertoire/répertoire git:

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

Entrez ce qui suit dans le débogueur et appuyez surENTREZ:

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

Cela ajoute essentiellement un point d'arrêt conditionnel à la position où j'obtiens le signal 11. Il s'agit de la ligne de code:

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

Ensuite, entrez c pour continuer l'exécution et appuyez surENTREZ.

Quelqu'un peut-il expliquer pourquoi cela aide?

Edit: Cela a fonctionné: 213000 révisions et 1780 branches clonées dans git!

12
matthias.lukaszek

J'ai eu des exceptions similaires et des messages d'erreur, pour moi un 

git gc

et/ou un 

git svn gc

ramené le référentiel dans un état utilisable. Voir aussi https://stackoverflow.com/a/1436386/411846

6
centic

Vérifiez quel svn commit a causé le problème.

Les commits sont générés par la commande git svn clone, précédée d'un r. Le dernier commit produit est celui qui pose problème.

L'exemple suivant montre ce que la commande git svn clone génère au début du traitement de la révision Subversion 15 en tant que Git commit 373fb1...:

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

Fractionner la commande git svn clone à l'aide de l'option -r (révision)

Utilisez cette méthode:

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>

En supposant que la révision 15 soit celle qui pose problème et que le référentiel soit dans /tmp/svn/repo/, la solution serait la suivante:

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/
4
P.D.P.

Pour moi, la seule solution qui fonctionnait utilisait une ancienne version de Git .J'ai utilisé le paquet portable de Git 1.8.3 qui peut être téléchargé ici:

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

avec elle, il n’était pas nécessaire d’éditer les modifications .git/config, les extractions fractionnées ou les instructions de débogage Perl.

2
Marc W.

Updated - Le problème persiste après git gc pour moi. J'ai essayé toutes les versions de Windows Git (32 et 64 bits), mais j'ai quand même eu cette erreur. Ensuite, je suis passé à utiliser git sur linux et cela fonctionne très bien pour moi, même pour les commits extrêmement volumineux. Je recommande de passer à Linux, sinon vous n'avez aucune chance, car le problème soulevé ici - https://github.com/git-for-windows/git/issues/274 a presque 6 mois.

Updated - Pour ajouter à la réponse de centic, le git gc fonctionne uniquement pour Git 32 bits sous Windows, pour ce problème particulier.

Je pense que le problème existe pour git 64 bits pour Windows. J'avais le même problème avec git 64 bits, mais après le passage à git 2.7.2 Windows 32 bits, les problèmes semblent être résolus pour moi.

2
Rajeshwar Agrawal

Voici le problème que j'ai:

  • OS: xubuntu 16.04
  • git-svn version 2.7.4 (svn 1.9.3)

Informations de trace 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)

J'ai finalement résolu ce problème en procédant comme suit (ceci concerne les utilisateurs Ubuntu Linux 16.04):

Sudo apt build-dep Subversion
Sudo apt install libneon27-dev
Sudo cpan SVN::Core

Ensuite, je peux utiliser git svn fetch/clone sans aucun crash.

La cause première de ce problème est que le script de bibliothèque SVN :: Core de Perl ne correspond pas aux fichiers binaires installés dans Perl (des fichiers binaires Subversion distincts sont installés dans Perl à côté des systèmes installés).

Attention, cela rétrogradera la version svn de votre git-svn à la version 1.8.11 (avant la version 1.9.3), et pourrait causer d'autres problèmes.

2
lcltj

J'ai pu vérifier correctement le dépôt svn en utilisant Cygwin .

1
sevensevens

Je recevais toutes sortes d'erreurs avec git-svn: le script Perl mourrait à différents endroits, les extractions en mémoire seraient cassées ou le serveur interromprait la connexion. C’était un énorme dépôt qui prenait des dizaines de Go lorsqu’il était extrait via svn.

Ce qui a résolu cela pour moi était simplement d’utiliser SmartGit au lieu de git-svn. Il nécessitait Java 8, était extrêmement rapide et ne signalait aucune erreur, complétant de manière transparente en quelques heures la tâche qui prenait plusieurs jours.

1
feos

Je peux reproduire ce problème à chaque fois et git svn fonctionne parfaitement 

version 1.9.5

Vous pouvez l’installer à partir de Git-1.9.5-preview20141217.exe à partir de 

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

Je me demande si quelqu'un peut vérifier la différence entre l'ancienne version 1.9.5 et la version actuelle (après avoir passé de msysgit à ici)

Il est difficile d’utiliser l’ancienne version pour git, simplement parce que git svn ne peut pas fonctionner correctement dans la nouvelle version.

0
Dominik Jeník

Dans mon cas, je n'étais pas connecté à notre VPN, ce qui est nécessaire pour notre connexion svn. C'est mon erreur

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
0
h3n

dans mon cas, cette erreur s'est produite sous Ubuntu 16.04 et la version est git-svn version 2.17.0 (svn 1.9.3) après avoir exécuté la commande git svn --version, je passe sur mon MacOS dont les informations de version sont git- svn version 2.17.0 (svn 1.7.20) après avoir exécuté la commande git svn --version, puis être revenu à ubuntu après la réussite du clonage et de l'extraction et d'autres opérations sous MacOS.

0
VinceStyling

Dans mon cas, cette erreur est survenue avec un grand référentiel. Donc, essayez de cloner le sous-dossier si possible.

0
syned