usuario tag crear cambiar git netbeans whitespace removing-whitespace textwrangler

tag - git config--global



Mi diff contiene espacios en blanco al final, ¿cómo deshacerme de él? (5)

He intentado editar un archivo php en TextWrangler con los finales de línea establecidos en Unix, en NetBeans y en vim. Cuando guardo el diff en un parche y luego trato de aplicarlo, da errores de espacio en blanco. Cuando git diff puedo ver ^M al final de mis líneas, pero si las elimino manualmente en vim, dice que mi archivo de parche está dañado y que el parche no se aplica en absoluto.

Creo un parche con el siguiente comando:

git diff > patchname.patch

Y lo aplico revisando una versión limpia del archivo para ser parcheado y mecanografiado

git apply patchname.patch

¿Cómo puedo crear este parche sin errores de espacios en blanco? He creado parches antes y nunca me he encontrado con este problema.


¿Estás seguro de que esos son errores difíciles? De forma predeterminada, git advertirá sobre los errores de espacios en blanco, pero seguirá aceptándolos. Si son errores graves, debe haber cambiado algunas configuraciones. Puede usar el --whitespace= para git apply para controlar esto por invocación. Tratar

git apply --whitespace=warn patchname.patch

Eso forzará el comportamiento predeterminado, que es advertir pero aceptar. También puede usar --whitespace=nowarn para eliminar las advertencias por completo.

La variable de configuración que controla esto es apply.whitespace .

Para referencia, los errores de espacio en blanco aquí no son errores con su parche. Es un estilo de código que git, de forma predeterminada, se quejará cuando aplique parches. En particular, no le gusta los espacios en blanco que se arrastran. De manera similar, git diff resaltará los errores de espacios en blanco (si está enviando a un terminal y el color está activado). El comportamiento predeterminado es advertir, pero aceptar el parche de todos modos, porque no todos los proyectos son fanáticos de los espacios en blanco.


Creo que la pregunta de cómo lidiar con el espacio en blanco ha sido respondida adecuadamente, pero usted preguntó de dónde viene. Usted mencionó ^M al final de las líneas: así es como Git muestra los finales de línea de Windows. Tal vez intente ejecutar dos2unix en sus archivos de origen antes de crear parches, o use un editor que mantenga los finales de línea originales.



Prueba el parche -p1 <nombre_archivo.patch


git apply --reject --whitespace=fix mychanges.path