мерзавец, пробельные ошибки, шумоподавление и autocrlf, окончательные ответы - PullRequest
43 голосов
/ 01 июня 2010

Расскажите, пожалуйста, об ошибках пробелов в git, что они означают, что такое "подавление", и нужно ли об этом беспокоиться?

(работает msysgit, но с другими пользователями в linux).

Уже есть «окончательный» ответ для autocrlf здесь (установите его в false git config --global core.autocrlf false )

Ответы [ 3 ]

25 голосов
/ 01 июня 2010

Подавление изначально является функцией, используемой в телекоммуникации для установки порога, выше которого сигнал пропускается или не пропускается.

В вашем случае, когда вы видите:

warning: squelched 104 whitespace errors
warning: 109 lines add whitespace errors. 

Это означает: вместо отображения более 100 сообщений об ошибках, он предупреждает вас, что он должен был отображать эти ошибки (но не будет, чтобы не загромождать вывод)

У меня нет четких рекомендаций по политике в отношении пробелов, кроме как определить, почему они вообще представлены.
Если ваш редактор не преобразует символы eol (конец строки) между Window и Unix, то это означает, что он каким-то образом автоматически добавляет или удаляет пробелы, что не всегда полезно.

Первый тест (как в этом сообщении в блоге ) - деактивировать политику:

git config core.whitespace nowarn

или попробуйте

git config core.whitespace fix

и посмотрите, облегчает ли это ваши операции по перебазированию.

16 голосов
/ 18 февраля 2015

Вот как исправить ошибки «пробела в конце» при использовании git apply:

Первое, что вам нужно знать: что такое ошибка с пробелами. Это объясняется в документации по настройке core.whitespace . По сути, git обрабатывает несколько видов ошибок, связанных с пробелами:

blank-at-eol
blank-at-eof
space-before-tab
indent-with-non-tab
tab-in-indent
cr-at-eol

конечный пробел Ошибка может возникать при исправлении файла с использованием окончания строки в стиле Windows (CRLF). Чтобы избежать этого предупреждения, вы можете либо попросить git apply не показывать предупреждение:

git apply --whitespace=nowarn fix.patch

или вы можете отредактировать конфигурацию git на лету -c), чтобы сказать: «Хорошо, git, CR в конце строки в порядке на этот раз»:

git -c core.whitespace=cr-at-eol apply fix.patch

Если вы хотите сделать его постоянным , просто отредактируйте конфигурацию git следующим образом:

git config apply.whitespace nowarn

или:

git config core.whitespace cr-at-eol
13 голосов
/ 08 марта 2013

После поиска этого ответа и изучения руководств git-config и git-apply я обнаружил, что

git config apply.whitespace nowarn

отключает отображение ошибок пробелов в вашем текущем репозитории.

Чтобы сделать его доступным для всех хранилищ, просто добавьте --global следующим образом:

git config --global apply.whitespace nowarn
...