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