2009-09-25 64 views
1

我想设置一个过滤器,以便在签出时它会向我的文件注入一些git相关信息,并在提交时删除此信息。我已经证实,当我提交文件时,它已被正确清理。此外,如果我删除该文件,然后做一个结帐该文件被适当的污迹。Git涂抹过滤器

我的问题是以下。 如果我对文件进行了更改并且提交了更改,则涂抹过滤器不会运行。这是预期的行为?有没有办法让污迹过滤器在提交时运行? (可能是通过立即执行验证?)

+0

“当我提交文件时,它已被正确清理”:所以过滤器在提交时工作,是吗?但也许他不会考虑索引中已添加的内容...... – VonC 2009-09-25 12:25:38

+0

干净的过滤器对提交起作用,并且涂抹过滤器在结帐时起作用。我想知道是否有一种方法可以在我提交之后运行污迹过滤器,以便与提交哈希等相关的文件中的信息自动更新。 – cefstat 2009-09-25 13:01:46

回答

9

干净/污迹过滤器绝对不是可靠地将基于提交的信息添加到工作树文件的地方。原因 - 正如您发现的 - 是在不需要将新版本的文件写入工作树的操作中不会触及该文件。如果给定的文件没有被这些提交所触及,您可以合并或快速转发许多提交而不应用过滤器。

如果模板文件可以通过构建步骤(使用类似git rev-parse HEADgit describegit describe来检索当前提交信息)转换为具有嵌入的提交信息的被忽略的实际文件,您可能会更好。