Git-хуки для хранения / поиска метаданных - PullRequest
11 голосов
/ 26 февраля 2010

Одной из неизбежных особенностей git является его неспособность хранить и извлекать метаданные о файле. Например, в Mac ярлыки хранятся с «расширенными атрибутами» (доступными с xattr), и любая команда checkout / reset / merge / pull удалит эти атрибуты, если на файл влияет проверка.

Я посмотрел вокруг, чтобы посмотреть, написал ли кто-нибудь сценарии сохранения метаданных, но я пришел в себя.

Итак, я хотел бы использовать систему хитов Git для:

  1. Чтение расширенных атрибутов при фиксации файлов,
  2. Записать атрибуты в файл, хранящийся в хранилище, которое также фиксируется,
  3. Применение расширенных атрибутов к файлам, которые были изменены при слиянии / оформлении заказа / сбросе.

Какие из крючков мне следует использовать? post-receive и pre-commit - это все, что мне нужно? Может ли pre-commit также добавить файл в коммит (т.е. после записи новых атрибутов)?

Ответы [ 2 ]

3 голосов
/ 27 февраля 2010

Инструмент gibak использует pre-commit и post-checkout, чтобы позволить ometastore инструменту сохранять / восстанавливать метаданные (дополнительно включая xattrs).

Вы не хотите post-receive. Он запускается на удаленном конце толчков. Он работает для пустых репозиториев, поэтому ему не нужно пытаться обновить какие-либо файлы из содержимого выдаваемого коммита. Сделайте это в post-checkout, где вы знаете, что у вас будет рабочее дерево.

0 голосов
/ 28 мая 2014

metastore может сохранять и восстанавливать метаданные файла, сохраняя их в отдельном файле (который вы можете включить в свои коммиты)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...