J'ai un référentiel Subversion hébergé sur Linux mais jamais accédé aux clients via Windows, car il s'agit de la source d'une grande application Windows. P>
Ce serait génial si je pouvais travailler sur ce référentiel à l'aide de GIT-SVN (fourni par MSYSGIT). P>
Je vais avoir un diable d'une dizaine à essayer d'obtenir le référentiel de ne pas se mettre en carton sur les fins de la ligne de style Windows. P>
Après Quelle est la meilleure option ici? Dois-je utiliser Je suis très proche de jeter dans la serviette et de mettre ma section de travail de subversion dans un référentiel Git. Ce serait une solution médiocre mais permettrait au moins de permettre aux branches et aux catastrophes locales. Cela deviendra évidemment une énorme douleur pour continuer à ajouter des fichiers lorsqu'ils sont ajoutés à la subversion. P>
Je vais essentiellement abandonner cette question puisqu'elle n'allait pas conduire à un résultat raisonnable. Espérons que le prochain google Summer of Code attirera quelqu'un qui souhaite ramasser leur projet "Supeon GIT-SVN SUPPORT SUR WINDOWS". Voir http://git.or.cz/gitwiki/soc2009ideas#propergit-svnsupportonwindows p> svn clone code> une caisse du référentiel git avec: p>
core.autocllf = true code> montre des modifications à n'importe quel fichier qui utilisent réellement
lf code> dans le référentiel. li>
core.autocllf = Entrée code> Affiche des modifications à n'importe quel fichier qui utilise réellement
lf code> dans le référentiel. LI>
core.autocllf = false code> montre des modifications à tout. Li>
ul>
core.autocllf = true code> et validez le
lf code> à
CRLF code> modifications des fichiers affectés? P>
git-svn code> est une douleur royale si vous êtes sous Windows. La réponse de Hasen J ci-dessous est probablement la bonne mais je ne peux pas suivre ses conseils sans attirer l'Ire des autres développeurs de mon équipe. P>
6 Réponses :
J'ai eu un problème similaire. Pour le résoudre, après le clone Git-Svn, j'ai appliqué UNIX2DOS à tous les fichiers car, dans mon cas, tous les fichiers du SVN Repo utilisé CRLF. Donc, je suppose que vous devriez essayer la conversion CRLF-LF manuellement juste après Git-svn. P>
Cela semble être ma meilleure option pour l'instant. Je peux utiliser la sortie de "Statut GIT" pour répertorier les fichiers modifiés et exécuter ces via un script pour "résoudre" eux. Réglage "core.filemode = false" et une "réinitialisation GIT --Hard" était nécessaire pour remettre les choses à la manière dont ils auraient vraiment dû être. Kludgy, mais il semble avoir fait l'affaire.
En fait, cela semble toujours contrarier le diff de Git. Je retourne dans mon plan d'origine moins attrayant de simplement mettre ma copie de travail dans un référentiel Git.
Normalement, vous voudriez définir le OPTION CORE.AUTOCLLF comme si tellement : mais selon
Je nettoie habituellement mon clone git-svn avec filtre-filtre-filtre code> sur
recode dons..fascui -f code>. (Cela a également aidé
latin1..utf8 code> conversion, également.) P>
Mais cela ne détruit pas l'histoire de l'annotation de Git? Je crois que j'ai un problème similaire à l'OP, je crois et que "fixer" manuellement des fichiers après le clone signifie que j'écris dans toute l'histoire de ces fichiers, ce qui le rend inutile.
Faites-vous une faveur et ne plaisante pas avec des fins de ligne, gardez-les comme. Définir Un éditeur de texte semi-décent sous Windows doit être capable de gérer les fins de la ligne de style UNIX. P>
core.autocllf = FALSE montre les modifications à tout. p>
blockQuote>
Je pense que si vous ne faites que cela après le fait em>, cela ne vous fera aucun bien. p>
Vous devez supprimer ce référentiel, définissez AUTOCLLF sur FALSE, puis em> faire le clone. P> autocrilf code> sur
false code>. p>
Malheureusement, des éditeurs décents n'incluent pas tous ceux qui sont nécessaires pour construire le projet. Stupide, mais c'est un objet immeuble pour le moment. J'ai expérimenté avec différents paramètres avant le clone, y compris le clone sur une machine Linux. Je ne pouvais toujours pas obtenir des choses dans un état où l'ONG ou les outils de construction n'ont pas causé trop de choses à être marquées comme modifiées lorsque seules les terminaisons de ligne étaient affectées. Je vais vous donner un uppot, car il semble que cela fonctionnerait pour la plupart des gens.
Dans ce cas, convertissez toutes les lignes de ligne en CRLF et s'engagez dans le référentiel principal SVN.
Apparemment, cela ne sera pas autorisé. Signe.
C'est vraiment une solution valide pour travailler avec GIT-SVN, si les référentiels SVN stockent les fichiers avec CRLFS (développementale Unter Windows).
Étant donné que mon autre réponse ne s'applique pas bien à vous, voici une autre façon de faire face à la situation: p>
utiliser à la fois SVN et Git; dans le même répertoire de travail. P>
Vous travaillerez principalement avec GIT, tirant du référentiel en amont, en faisant des changements locaux, des branches locales, etc. Tout ce que vous faites normalement lorsque vous travaillez sur un projet GIT local. P>
Ensuite, lorsque vous souhaitez vous engager dans le Rappo central SVN, utilisez le client SVN. P>
J'ai eu une certaine expérience en faisant cela, seulement je ne ferais pas un svn commet code>, mais créer un patch avec
svn diff code> et le soumettre (puisque je n'avais pas commettre l'accès de toute façon). P>
C'est arrêter une idée intelligente. Je vais expérimenter avec ça.
À la fin, j'ai fini par utiliser un référentiel git totalement local et effectuez des mises à jour (à la branche Master GIT) et s'engage à la répétition à distance à l'aide de SVN. Je ne reçois pas une histoire locale très utile, mais je reçois des branches de fonctionnalité et une autre gentillesse git de cette façon. Espérons-le, à l'avenir, j'aurai un peu de temps pour essayer de réparer ce qui est vraiment faux avec Git-Svn.
Un autre bien conversations ici sur noyau .Autocllf code>. P>
Je ne pense pas que cela aide avec le problème git-svn. Il y a quelque chose d'idiot à l'intérieur là-bas qui rend une douleur à la caisse utilisable.
Eh bien je suis vraiment dérouté. J'ai commencé à essayer de résoudre ce problème, mais la vitesse lente du clone SVN sur Windows m'a fait commencer à le faire sous Linux. J'ai apporté à Repo to Windows puis handicapé CRLF et j'ai réinitialisé. Maintenant, je semble avoir un référentiel de git-svn de travail qui se comporte correctement ... Maintenant, pour déterminer quelles mesures sont en réalité nécessaires pour faire ce travail tout le temps ... j'espère que cela a vraiment travaillé et je ne courais pas dans des problèmes comme je commence En l'utilisant.