2009-12-14 7 views
3

Une situation étrange se produit lorsque j'essaie de cloner un dépôt svn distant.git svn fetch fatal: erreur d'écriture: argument invalide

Lorsque je tape:
git svn chercher

Git va chercher la première 20 révision du dépôt distant puis à un moment donné après 20 révisions, il tombe en panne et invite tout le message d'erreur suivant.

fatale: erreur d'écriture: Invalid argument

Alors se repose juste là sans rien faire d'autre. Si vous répétez la même initialisation de git, puis que vous réexécutez la recherche, le résultat est exactement le même que celui de l'erreur fatale.

Une idée de ce qui pourrait être à l'origine de cette situation? Je suis actuellement en cours d'exécution les versions suivantes:

TortoiseGit 1.2.1.0
version git 1.6.4.msysgit.0

+0

avez-vous téléchargé le code source Git ou msysgit? – VonC

Répondre

1

La version originale que j'utilisais quand je suis tombé sur cette erreur était: TortoiseGit-1.0.2.0-32bit.msi

Depuis vérifier le code source GIT et aussi msysGit Le code source de leur dépôt Git Je n'ai pas pu trouver l'emplacement de ce message d'erreur.

Je puis mis à jour à la version TortoiseGit suivante: TortoiseGit-1.2.1.0-32bit.msi

Puis j'ai couru exactement la même commande git sur le dépôt distant et cela a fonctionné. Donc, reliant les expériences précédentes avec GIT et Windows, je conclus les procédures suivantes si quelqu'un à l'avenir a des problèmes.

1) Vérifier les mises à jour, et mettre à jour la dernière version avant le débogage
2) Essayer de déboguer dans une ancienne version ne va pas aider, le problème pourrait avoir été corrigé dans une nouvelle version.

Lien vers mon expérience à ce sujet: Link

+0

Commentaires intéressants. +1 – VonC

1

Si vous excluez la cause évidente (pas d'espace disque à gauche!), Il pourrait être lié à un problème de mise en page avec le référentiel SVN distant (branches non présentes dans le sous-répertoire de la branche, balises non dans tag, ...). Voir Using git-svn with non-standard repository layouts pour un exemple d'un tel dépôt SVN.

Autre cas avoir des ennuis: un SVN repo which has changed its layout since the last import

Voir aussi mmap issues in Windows.

+0

Salut Vonc, je sautais ce serait la solution au problème. Je suis parti et j'ai appris à propos de Refs/télécommandes/et de ce qui se passe dans GIT avec les dépôts distants. Bien que, le problème est, même en essayant l'approche suggérée encore svn GIT signale la même erreur. – Chad

+0

Actuellement télécharger le code source GIT, pour trouver la source de ce problème. – Chad

+0

Téléchargé et vérifié la version GIT que je courais. N'a pas réussi à essayer même de traquer et localiser la source du message d'erreur. – Chad

3

Had question identique à msysGit v1.7.2.3, la dernière version en date du 29 10 sept et je voulais partager mes résultats ici (Google retourne plusieurs cas, mais pas de solutions).

Essayer de faire "git svn rebase" sur un repo (qui a déjà beaucoup fonctionné dans le passé) a toujours échoué avec un "fatal: write error: Invalid argument" après un certain nombre de validations. La synchronisation reviendrait alors au début.Je crois qu'il s'agit d'un bug dans Msysgit concernant les binaires de grande taille (ish) et la mémoire disponible (sur un système Win XP SP3 avec 4 Go de RAM et beaucoup d'espace libre HD). Le système distant était le repo DotNetNuke SVN sur CodePlex (https://dotnetnuke.svn.codeplex.com/svn).

Initialement, il s'étouffait sur un fichier "CHM" de 330 Ko (~ 212ème commit, r52261). Il l'a toujours fait, même après avoir désactivé Avast AV, Google Desktop, etc. et vérifié qu'il n'y avait pas d'autres processus avec des verrous sur le dossier repo. Après un redémarrage (mais l'ouverture de Outlook, Dreamweaver, etc), il a échoué systématiquement et à plusieurs reprises sur une DLL ~ 15,3 Mo (~ 416e commit, même révision).

Enfin, après un autre redémarrage, en désactivant Avast, Carbonite et Google Desktop et en n'exécutant aucun autre programme, la synchronisation a fonctionné pour la première fois.

Cela semble pointer fermement à ma conclusion qu'il s'agissait d'un problème de mémoire disponible, probablement lié à la présence d'un grand nombre binaire et un grand nombre de commits dans la révision. Notez que j'ai également essayé "git fsck", "git svn reset xx" et peaufiné les variables de configuration "packSizeLimit"/"usedeltabaseoffset", sans succès. Tchad - il se peut que vous ayez eu le même problème et que ce soit le redémarrage qui ait aidé, plutôt que la mise à jour.

+0

J'ai le même problème qui se produit avec un fichier de 37 Mo.Je vais essayer de libérer la mémoire disponible et voir si cela aide. –

+0

Cela n'a pas aidé. Je suis finalement passé à un système Linux et j'ai pu cloner mon dépôt Subversion (7 000 tr/min, 900 Mo) sans un seul problème. Git sur Windows vraiment nul. –

+0

J'ai tué le processus Tortoise Git Cache sans succès. J'ai ensuite redémarré le système et utilisé la ligne de commande qui a fonctionné. –

2

J'ai eu un problème simmilar, quand j'ai essayé d'aller chercher de gros repo à distance. J'ai essayé plusieurs fois depuis le début, et tous les temps obtenir cette erreur dans approximativement la même révision ~ 400 (ou peut-être exactement même - je n'ai pas fait attention beaucoup). Googling n'a pas donné de réponse. Puis j'ai pris mon tambour chaman, et j'ai essayé de tuer les processus TSVNCache.exe et TGitCache.exe. Après cela, je n'ai pas vu ce message d'erreur. J'ai repris le processus de récupération plusieurs fois en raison d'une interruption d'Internet - tout était OK (révisions totales ~ 3000), l'air comme si le problème est parti. Je pense que l'un de ces processus verrouille un fichier, qui est également utilisé par git. REMARQUE: si vous supprimez ces processus et démarrez l'Explorateur, ils seront à nouveau lancés.

1

Tuer TGitCache a fonctionné pour moi. Je déteste dire que TortoiseGit n'est vraiment pas là où TortoiseSVN est ... dommage.

0

j'ai eu le même problème et a eu quelques fichiers bizarres dans mon .git:

$ ls .git 
1N4s5Mx6eD 
3gRNi8l7yb 
config 
... 

après avoir supprimé les (1N4s5Mx6eD, 3gRNi8l7yb ...) Je pourrais continuer avec git svn fetch.

Je pense que ce problème de réseau peut être la raison, puisque git svn a échoué après un gros fichier, pour lequel les erreurs de transmission réseau sont plus probables.