Как определить файлы, которые подвергаются фильтрации через gitattributes при выполнении фильтра? - PullRequest
2 голосов
/ 20 мая 2010

У меня есть куча сценариев ruby ​​в репозитории git, и кажется, что очень сложно заставить людей писать код с правильным отступом.

У меня также есть небольшой скрипт ruby, который форматирует для кодирования в соответствии со специфическим стандартом, и теперь я хотел бы запустить его как скрипт фильтра, чтобы нежелательные файлы не попадали в репозиторий.делает ли это грязную хитрость, но сценарий ruby ​​должен затем обработать затронутые файлы:

как / где я могу их найти?

1 Ответ

1 голос
/ 20 мая 2010

Как описано в GitPro Book

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

Страница man git attributes упоминает:

  • При извлечении, когда указана команда smudge, команда получает объект blob из стандартного ввода, а его стандартный вывод используется для обновления файла рабочего дерева.
  • Аналогично, команда clean используется для преобразования содержимого файла рабочего дерева при регистрации.

alt text

Таким образом, ваш скрипт будет обрабатывать все *.rb файлы (в каталоге и подкаталогах, где находится файл .gitattributes) при извлечении и фиксации.

См. ТАК вопрос для конкретного примера.
Вы можете проверить свои собственные настройки с помощью:

git checkout --force

Примечание: как уже упоминалось в этом SO вопросе , smudge и clean сценарии могут изменять только содержимое файла, не зная какой именно файл они обрабатывают.

...