Mi diff contiene espacios en blanco al final: ¿cómo deshacerse de él?

He intentado editar un file php en TextWrangler con 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 file de parche está dañado y que el parche no se aplica en absoluto.

Creo un parche con el siguiente command:

git diff > patchname.patch

Y lo aplico revisando una versión limpia del file para ser parcheado y typescript

git apply patchname.patch

¿Cómo puedo crear este parche sin errores de espacio 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 pnetworkingeterminada, git advertirá sobre los errores de espacio en blanco, pero aún así los aceptará. Si son errores difíciles, entonces 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 pnetworkingeterminado, que es advertir pero aceptar. También puede usar --whitespace=nowarn para eliminar las advertencias por completo.

La variable de configuration que controla esto es apply.whitespace .


Como reference, los errores de espacio en blanco aquí no son errores con su parche. Es un estilo de código que git, de forma pnetworkingeterminada, se quejará cuando aplique parches. Notablemente, no le gusta el espacio en blanco al final. Del mismo modo, git diff resaltará los errores de espacio en blanco (si está enviando a un terminal y el color está activado). El comportamiento pnetworkingeterminado es advertir, pero aceptar el parche de todos modos, porque no todos los proyectos son fanáticos sobre el espacio en blanco.

git apply –reject –whitespace = corregir mychanges.path

Pruebe el parche -p1 <filename.patch

la solución de una línea es:

 emacs <filename> -f delete-trailing-whitespace -f save-buffer -f kill-emacs 

fuente: https://wiki.gnome.org/Projects/GnomeShell/Development/WorkingWithPatches