Git钩子用于元数据存储/检索

Set*_*son 11 git metadata

git不可避免的怪癖之一是它无法存储和检索有关文件的元数据.例如,在mac上,标签以"扩展属性"(可访问xattr)存储,任何checkout/reset/merge/pull命令将在文件受结账影响时删除这些属性.

我已经环顾四周看看是否有人已经编写了保存元数据的脚本,但我干了.

所以我想做的是使用Git的钩子系统:

  1. 提交文件时读取扩展属性,
  2. 将属性写入存储在存储库中的文件,该文件也会被提交,
  3. 将扩展属性应用于在合并/签出/重置中修改的文件.

我应该使用哪个钩子?是post-receivepre-commit所有我需要?可以pre-commit还添加了一个文件,以提交(即写入新的属性之后)?

Chr*_*sen 5

gibak工具使用和来让其ometastore工具保存/恢复数据(可选地包括 xattrs)。pre-commitpost-checkout

你不想要post-receive。它在推送的远程端运行。它运行于裸存储库,因此它没有必要尝试从推送的提交内容中更新任何文件。post-checkout在您知道将有可用的工作树的地方进行此操作。