2010-02-24 7 views
5

Uso git (con git-svn) en Linux y un colega usa svn en windows.git svn windows linux whitespace problems

Muchas veces, git informa sobre problemas de espacio en blanco. De hecho, no puede comprometer una historia lineal debido a estos problemas y crea conflictos de fusión.

¿Cuál es la forma más sencilla de configurar svn/git y git-svn en Windows y Linux, por lo que ahora hay problemas de espacio en blanco?

continuación se presenta un conflicto de combinación informado, en una historia lineal en el maestro:

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". 

¿Cómo puedo solucionar los problemas de espacio en blanco?

Respuesta

11

fijación de los errores de espacio en blanco

Añadir esto a .gitconfig

[core] 
    whitespace=nowarn 

git rebase ahora debería funcionar. (Se pueden añadir opcionalmente algunos de fix,-indent-with-non-tab,trailing-space a que para tener git solucionar todos los espacios en blanco en cada confirmación. Si eso es una buena idea depende de las reglas de su proyecto y el equipo.)

fijación de los errores EOL

[core] 
    autocrlf = true 

en su .gitconfig. Esto obligará a cada archivo de texto a tener terminaciones de línea de Windows. svn por defecto ignora los finales de línea y si tus editores de texto en Windows están en su sano juicio, puedes dejarlo así. De lo contrario, agregue this file a su configuración svn (opcionalmente cambiando native a CRLF) asegurando terminaciones de línea CRLF consistentes a través de out.

Conjunto autocrlf = input y cambie native por LF para obtener consistentemente terminaciones de línea linux en todo.