Заставьте мерзавца автоматически удалить запаздывание пробела перед фиксацией

Это относится к динамическому функциональному модулю, который позволяет вам отделить определенные функции и ресурсы от базового модуля вашего приложения и включить их в комплект вашего приложения. Это позволяет пользователям загружать и устанавливать эти модули / компоненты по требованию (все равно требуется установить базовый SDK).

Для получения более подробной информации, вы можете обратиться к официальному документу для динамической функции

211
задан mloughran 31 July 2014 в 04:13
поделиться

4 ответа

Это, вероятно, непосредственно не решит Вашу проблему, но Вы могли бы хотеть установить тех, которые через конфигурацию мерзавца в Вашем фактическом пространстве проекта, которое редактирует./.git/config в противоположность ~/.gitconfig. Хороший для хранения настроек последовательными среди всех участников проекта.

git config core.whitespace "trailing-space,space-before-tab"
git config apply.whitespace "trailing-space,space-before-tab"
-1
ответ дан bojo 23 November 2019 в 04:33
поделиться

Я оставил бы эту задачу Вашему любимому редактору.

Просто устанавливает команду для удаления конечных пробелов при сохранении.

11
ответ дан Giacomo 23 November 2019 в 04:33
поделиться

Те настройки (core.whitespace и apply.whitespace) не должны туда удалять запаздывание пробела, но к:

  • core.whitespace: обнаружьте их и повысьте ошибки
  • apply.whitespace: и разделите их, но только во время патча, не "всегда автоматически"

Я верю git hook pre-commit сделал бы лучшее задание для того (включает удаление, запаздывающее пробел),


Обратите внимание, что в любой момент времени можно принять решение не работать pre-commit рычаг:

  • временно: git commit --no-verify .
  • постоянно: cd .git/hooks/ ; chmod -x pre-commit

Предупреждение: по умолчанию, a pre-commit сценарий (как этот), не имеет, "удаляют запаздывание" функции", а функции "предупреждения" как:

if (/\s$/) {
    bad_line("trailing whitespace", $_);
}

Вы могли однако создать лучшее pre-commit рычаг, особенно когда Вы полагаете что:

Фиксация в Мерзавце только с некоторыми изменениями, добавленными к району сосредоточения войск все еще, приводит к “атомарному” пересмотру, который никогда не мог существовать как рабочая копия и не может работать.


Например, oldman делает предложение в другом ответе a pre-commit рычаг, который обнаруживает и удаляет пробел.
Так как тот рычаг получает имя файла каждого файла, я рекомендовал бы быть осторожным для определенного типа файлов: Вы не хотите удалять запаздывание пробела в .md (скидка с цены) файлы!

107
ответ дан VonC 23 November 2019 в 04:33
поделиться

Я обнаружил ловушку предварительной фиксации git , которая удаляет завершающие пробелы .

#!/bin/sh

if git-rev-parse --verify HEAD >/dev/null 2>&1 ; then
   against=HEAD
else
   # Initial commit: diff against an empty tree object
   against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi
# Find files with trailing whitespace
for FILE in `exec git diff-index --check --cached $against -- | sed '/^[+-]/d' | sed -r 's/:[0-9]+:.*//' | uniq` ; do
   # Fix them!
   sed -i 's/[[:space:]]*$//' "$FILE"
   git add "$FILE"
done
exit
29
ответ дан 23 November 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: