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