2010-01-13 8 views
4

J'ai un problème avec git.git svn rebase problème sur windows

Fondamentalement, voici ce que j'ai. J'accède à un dépôt svn via git. Jusqu'à présent, sur les fichiers python, tout fonctionnait bien.

Mais récemment j'ai également ajouté quelques fichiers pyd, dll et lib sur le dépôt. La première mise à jour s'est bien passée. Mais ensuite, ces fichiers ont été modifiés et depuis lors, je ne peux pas mettre à jour. Ces fichiers ont été ajoutés à partir d'un ordinateur Windows avec TortoiseSvn sur le référentiel svn.

Si je fais un git svn rebase sur Linux, tout fonctionne bien.

Si je fais un svn git rebase sur les fenêtres avec msysgit (et TortoiseGit), je l'erreur suivante: fatale: Erreur d'écriture: Invalid argument

Si je fais un svn git rebase sur les fenêtres avec Cygwin, j'ai l'erreur suivante: n'a pas trouvé de nouvelle ligne après blob à la ligne /usr/lib/perl5/vendor_perl/5.10/Git.pm 916

J'ai essayé plusieurs choses (autocrlf vrai/faux, safecrlf vrai/false), en ajoutant le fichier .gitattributes avec la ligne suivante *. * -crlf -diff -merge et rien n'a fonctionné.

Je suis un peu coincé ici, donc toute suggestion serait la bienvenue.

Merci d'avance.

+0

oh, et j'essaie aussi git svn fetch -rHEAD et toujours le même problème – darkpotpot

+0

D'autres plus intelligents que moi résoudront votre problème réel. Mais puis-je demander si ces objets générés sont générés par votre projet ou s'ils proviennent de l'extérieur de votre projet? Je suis curieux de savoir pourquoi vous avez besoin de mettre des objets générés dans le dépôt. –

+0

En fait, ces objets générés sont générés par quelqu'un d'autre. En bref, tout le monde utilise python sauf une personne. Cette personne réécrit certaines de nos bibliothèques python en C++ afin d'améliorer la vitesse. Il est donc le seul à ajouter les fichiers générés dans le référentiel et nous n'avons pas besoin de recompiler les bibliothèques C++ sur chaque ordinateur. – darkpotpot

Répondre

1

J'ai trouvé que la meilleure politique pour utiliser Git sur Windows est de lui dire de ne rien faire à propos des fins de ligne.

Je ne sais pas si cela vous aidera à récupérer votre repo git actuel, mais ça vaut le coup.

I set:

[core] 
    autocrlf = false 
+0

Merci pour votre réponse. J'ai déjà essayé autocrlf et safecrlf avec true ou false et ça ne marche pas. – darkpotpot

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 se présente plusieurs cas, mais pas 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.

Questions connexes