Одной из неизбежных особенностей git является его неспособность хранить и извлекать метаданные о файле. Например, в Mac ярлыки хранятся с «расширенными атрибутами» (доступными с xattr
), и любая команда checkout / reset / merge / pull удалит эти атрибуты, если на файл влияет проверка.
Я посмотрел вокруг, чтобы посмотреть, написал ли кто-нибудь сценарии сохранения метаданных, но я пришел в себя.
Итак, я хотел бы использовать систему хитов Git для:
- Чтение расширенных атрибутов при фиксации файлов,
- Записать атрибуты в файл, хранящийся в хранилище, которое также фиксируется,
- Применение расширенных атрибутов к файлам, которые были изменены при слиянии / оформлении заказа / сбросе.
Какие из крючков мне следует использовать? post-receive
и pre-commit
- это все, что мне нужно? Может ли pre-commit
также добавить файл в коммит (т.е. после записи новых атрибутов)?