Git двоичный патч, поскольку при применении текста много ошибок пробелов - PullRequest
1 голос
/ 13 июля 2020

При использовании git diff -a для текста, например git diff --no-index -a dir1 dir2 > dir.patch, когда я применяю патч с git apply, я получаю много предупреждений о пробелах в конце и подавлении тысяч ошибок пробелов. Стоит ли мне беспокоиться об этом? diff показывает, что исправленный каталог на байт идентичен ожидаемому исправленному состоянию, поэтому ничего не было повреждено. (Я знаю, что --binary устраняет эти ошибки.)

1 Ответ

0 голосов
/ 13 июля 2020

Стоит ли мне беспокоиться о предупреждениях об ошибках [Git]?

Только если вы согласны с довольно самоуверенной позицией Git по поводу пробелов. То есть по умолчанию Git считает, что строка в файле заканчивается пробелом - это плохо. Если мы позволим символу $ представлять конец строки, тогда:

hello world$

нормально, но:

hello world $

- нет. Хотя большинство команд Git ничего не говорят об этом, git diff выделяет"плохие" пробелы, а git apply жалуется на"плохие" пробелы.

Если вы не согласны с Git (и / или если такие пробелы важны), вы можете настроить Git или использовать аргументы командной строки для git apply, чтобы изменить то, на что он жалуется о жалобах или отключить их. Если вы считаете, что Git прав, вы можете превратить жалобы git apply в явные ошибки, а не предупреждения, или указать Git, чтобы исправить такие ошибки (например, удалить конечный пробел из приведенной выше строки).

Полный список параметров пробелов см. В настройках core.whitespace, описанных в документации git -config .

...