用于元数据存储/检索的 Git Hook

标签 git metadata

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

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

所以我想做的是使用 Git 的钩子(Hook)系统来:

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

我应该使用哪个钩子(Hook)? post-receivepre-commit 是我所需要的吗? pre-commit 是否也可以将文件添加到提交中(即,在写入新属性之后)?

最佳答案

gibak tool使用 pre-commitpost-checkout 让它的 ometastore 工具保存/恢复元数据(可选地包括 xattrs)。

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

关于用于元数据存储/检索的 Git Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19325518/

相关文章:

git - 将 GitHub 分支自动部署到 AWS Elastic Beanstalk

git - 阻止 git 跟踪临时打开的 Microsoft Office 文件

c# - ADS(备用流)与 DSO(文件属性)存储元数据

javascript - 加载大小的图像事件

android - 使用 Exoplayer 从 Icecast 流中提取元数据

metadata - BlueSnap API - 每个事务的元数据

git - git 标签末尾的 '^{}' 是什么意思?

git - 如何让 composer 不为包创建 .git 目录

Git 还原 "revert is not possible because you have unmerged files"

php - 从$ json打印youtube元数据