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

时间:2010-02-26 14:55:09

标签: git metadata

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

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

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

  1. 提交文件时读取扩展属性
  2. 将属性写入存储在存储库中的文件,该文件也会被提交,
  3. 将扩展属性应用于在合并/结帐/重置中修改的文件。
  4. 我应该使用哪个钩子?我需要post-receivepre-commit吗? pre-commit还可以向提交添加文件(即,在写入新属性之后)吗?

2 个答案:

答案 0 :(得分:3)

gibak tool使用pre-commitpost-checkout ometastore 工具保存/恢复元数据(可选择包含xattrs)。

您不希望post-receive。它在推送的远端运行。它运行的是裸存储库,所以它没有尝试从推送提交的内容更新任何文件的业务。在post-checkout中进行,你知道你将有一个可用的树。

答案 1 :(得分:0)

metastore能够保存和恢复文件元数据,并将其存储在单独的文件中(您可以将其包含在提交中)