2010-02-24 6 views
5

J'utilise git (avec git-svn) sous linux et un collègue utilise svn sur windows.git svn windows linux problèmes d'espaces

Tant de fois, git signale des problèmes d'espace. En fait, il ne commet pas d'historique linéaire à cause de ces problèmes et crée des conflits de fusion.

Quelle est la manière la plus simple de configurer svn/git et git-svn sous Windows et Linux pour qu'il y ait maintenant des problèmes d'espaces?

Voici un conflit de fusion rapporté, dans une histoire linéaire maître:

error: patch failed: frontend/templates/frontend/base.html:38 
error: frontend/templates/frontend/base.html: patch does not apply 
error: patch failed: frontend/templates/frontend/footer.html:1 
error: frontend/templates/frontend/footer.html: patch does not apply 
error: patch failed: frontend/templates/frontend/index.html:1 
error: frontend/templates/frontend/index.html: patch does not apply 
Using index info to reconstruct a base tree... 
<stdin>:15: trailing whitespace. 

<stdin>:20: trailing whitespace. 
      <a href="{% url frontend_index %}"> 
<stdin>:22: trailing whitespace. 
      </a> 
<stdin>:24: trailing whitespace. 
     <span class="companyname"> 
<stdin>:25: trailing whitespace. 
      <a href="{% url frontend_index %}"> 
warning: squelched 74 whitespace errors 
warning: 79 lines add whitespace errors. 
Falling back to patching base and 3-way merge... 
Auto-merging frontend/templates/frontend/base.html 
CONFLICT (content): Merge conflict in frontend/templates/frontend/base.html 
Auto-merging frontend/templates/frontend/index.html 
CONFLICT (content): Merge conflict in frontend/templates/frontend/index.html 
Failed to merge in the changes. 
Patch failed at 0001 template changes 

When you have resolved this problem run "git rebase --continue". 
If you would prefer to skip this patch, instead run "git rebase --skip". 
To restore the original branch and stop rebasing run "git rebase --abort". 

Comment résolvez-je les problèmes d'espaces blancs?

Répondre

11

Correction des erreurs espaces blancs

Ajouter à ce .gitconfig

[core] 
    whitespace=nowarn 

rebasage git devrait maintenant fonctionner. (Vous pouvez aussi ajouter un peu de fix,-indent-with-non-tab,trailing-space que d'avoir git fixer tous les espaces à chaque livraison. Que ce soit une bonne idée dépend de vos règles de projet et l'équipe.)

Correction des erreurs eol

[core] 
    autocrlf = true 

dans votre .gitconfig. Cela forcera chaque fichier texte à avoir des fins de ligne Windows. Par défaut, svn ignore les fins de ligne et si vos éditeurs de texte sur Windows sont sains, vous pouvez le laisser de cette façon. Sinon, ajoutez this file à votre fichier svn config (en modifiant éventuellement native à CRLF) pour assurer la fin de la ligne CRLF.

Définissez autocrlf = input et remplacez par LF pour des fins de ligne Linux cohérentes.