unstaged not does create git whitespace patch git-patch

not - git save patch file



¿Qué significa "1 línea agrega errores de espacio en blanco" cuando se aplica un parche? (4)

El error de espacio en blanco con imágenes visuales se muestra aquí.

http://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project#Commit-Guidelines

Estoy editando algunos archivos de marcado de un repositorio remoto clonado, y quería probar la creación y aplicación de parches de una rama a otra. Sin embargo, cada vez que hago algún cambio, recibo el siguiente mensaje durante la git apply :

0001-b.patch:16: trailing whitespace. warning: 1 line adds whitespace errors.

(Esto está sucediendo en mi Mac, y no sé dónde se creó el código original).

¿Qué significa el mensaje de advertencia y debo preocuparme?


No es necesario que te importe

La advertencia representa un estándar de limpieza de los archivos de texto con respecto al espacio en blanco, el tipo de cosas que a muchos programadores les importa. Como explica el manual :

Lo que se consideran errores de espacio en blanco se controla mediante la configuración core.whitespace. De manera predeterminada, los espacios en blanco al final (incluidas las líneas que consisten únicamente en espacios en blanco) y un carácter de espacio que es seguido inmediatamente por un carácter de tabulación dentro de la sangría inicial de la línea se consideran errores de espacio en blanco.

Por defecto, el comando genera mensajes de advertencia pero aplica el parche.

Entonces, el "error" significa que el cambio introduce un espacio en blanco al final, una línea de solo espacio en blanco o un espacio que precede a una pestaña. Aparte de ese hecho, no hay nada erróneo sobre el cambio, y se aplicará limpia y correctamente. En otras palabras, si no te preocupa el espacio en blanco "incorrecto", no git config apply.whitespace nowarn en ignorar la advertencia o desactivarla con la git config apply.whitespace nowarn .


Porque la línea comienza con TAB lugar de SPACE . Vaya al archivo de parche y reemplace TAB con SPACE . Por ejemplo, en vim on line + del archivo de parche escriba x para eliminar espacio y no elimine signo + e inserte espacio (CTRL) en eqiv al tamaño original.


Un caso en el que legítimamente podría interesarse es cuando desea diferenciar entre el error "antiguo" de blanco y negro (que es posible que desee conservar por razón de legado) y los "nuevos" errores de espacio en blanco (que desea evitar).

A tal efecto, Git 2.5+ (Q2 2015) propondrá una opción más específica para la detección de espacios en blanco.

Ver confirma 0e383e1 , 0ad782f y d55ef3e [26 de mayo de 2015] de Junio ​​C Hamano ( gitster ) .
(Fusionado por Junio en commit 709cd91 , 11 de junio de 2015)

diff.c : --ws-error-highlight=<kind> opción --ws-error-highlight=<kind>

Tradicionalmente, solo nos importaban las roturas de espacios en blanco introducidas en nuevas líneas.
Algunas personas también quieren pintar espacios en blanco en líneas viejas. Cuando ven una rotura en blanco en una nueva línea, pueden detectar el mismo tipo de rotura del espacio en blanco en la línea anterior correspondiente y quieren decir: "Ah, esas roturas están ahí, pero fueron heredadas del original, así que no las toquemos para ahora."

Introduzca la --ws-error-highlight=<kind> , que les permite pasar una lista de old , new y context separados por comas para especificar en qué líneas resaltar los errores de espacio en blanco.

La documentación ahora incluye :

--ws-error-highlight=<kind>

Resalte los errores de espacio en blanco en las líneas especificadas por <kind> en el color especificado por color.diff.whitespace .
<kind> es una lista separada por comas del context old , new .
Cuando no se proporciona esta opción, solo se resaltan los errores de espacio en blanco en las new líneas.

Eg --ws-error-highlight=new,old resalta los errores de espacio en blanco en las líneas eliminadas y agregadas.
all se puede usar como una abreviatura para el old,new,context .

Por ejemplo, la confirmación anterior tenía un error de espacio en blanco ( bbb ), pero solo puede enfocarse en los nuevos errores (al final de still bbb y ccc ):

(prueba hecha después de t/t4015-diff-whitespace.sh )