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


Estoy editando algunos archivos markdown 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 cualquier cambio, recibo el siguiente mensaje durante git apply:

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

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

¿Qué significa el mensaje de advertencia, y tengo que preocuparme?

Author: Mechanical snail, 2012-09-13

4 answers

No necesitas preocuparte.

La advertencia establece un estándar de limpieza de los archivos de texto con respecto a los espacios en blanco, el tipo de cosa que muchos programadores tienden a preocuparse. Como el manual explica:

Lo que se consideran errores de espacios en blanco se controla por núcleo.configuración de espacios en blanco. De forma predeterminada, los espacios en blanco al final (incluyendo líneas que consisten únicamente en espacios en blanco) y un espacio carácter que es inmediatamente seguido por un carácter de pestaña dentro de la la sangría inicial de la línea se consideran errores de espacios en blanco.

De forma predeterminada, el comando emite mensajes de advertencia pero aplica el parche.

Por lo tanto, el "error" significa que el cambio introduce un espacio en blanco 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 en el cambio, y se aplicará limpia y correctamente. En otras palabras, si no le importa el espacio en blanco "incorrecto", no dude en ignorar el advertencia o apágalo con git config apply.whitespace nowarn.

 102
Author: user4815162342,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-10 09:21:40

Un caso en el que podría preocuparse legítimamente es cuando desea diferenciar entre errores de espacios en blanco "antiguos" (que podría querer mantener por razones heredadas) y errores de espacios en blanco "nuevos" (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.

Véase commits 0e383e1, 0ad782f , and d55ef3e [26 May 2015] by Junio C Hamano (gitster).
(Fusionado por Junio in commit 709cd91 , 11 Jun 2015)

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

Tradicionalmente, solo nos preocupábamos por las roturas de espacios en blanco introducidas en nuevas líneas.
Algunas personas quieren pintar roturas de espacios en blanco en viejos las líneas, también. Cuando ven una rotura de espacio en blanco en una nueva línea, puede detectar el mismo tipo de rotura de espacios en blanco en el correspondiente la vieja línea y quieren decir " Ah, esas roturas están ahí pero ser heredado del original, así que no los toquemos por ahora."

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

La documentación de ahora incluye :

--ws-error-highlight=<kind>

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

Por ejemplo, --ws-error-highlight=new,old resalta los errores de espacios en blanco tanto en las líneas eliminadas como en las añadidas.
all puede utilizarse como mano corta para old,new,context.

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

errores de espacio de mierda antiguos y nuevos

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

 4
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-12 13:42:53

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

 1
Author: Vebz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-07 12:21:46

Porque la línea que comienza con TAB es la de SPACE. Vaya a patch file y reemplace TAB por SPACE. Por ejemplo, en vim on line + desde el tipo de archivo de parche x para eliminar espacio y no eliminar signo + e insertar espacio (CTRL) en eqiv al tamaño original.

 -1
Author: Marian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-22 14:55:36