首页 > 解决方案 > 分支开关上的 GIT 涂抹过滤器:如何从“新”分支获取日志?

问题描述

我正在使用涂抹过滤器来扩展关键字(例如提交哈希、作者、日期)。该脚本是用python编写的,并在子进程中触发“git log”来检索信息。如果我删除文件并再次检查,一切正常。

但是当我切换分支时,扩展到文件中的信息是错误的。我发现涂抹脚本在 HEAD 切换到我要检查的分支之前运行,这对我来说很有意义。所以在这种情况下,“git log”会给我我来自的分支的信息,而不是我要切换到的分支的信息。

我如何知道要在涂抹脚本中签出哪个分支?或者如何从我要切换到的分支中检索信息?

标签: gitbranchgit-filter

解决方案


提交哈希和被检出的 ref 都不能用于涂抹和清理过滤器。它可能会以新filter.<driver>.process形式作为属性传递,但尚未在 Git 中实现这一点。

如果您只想实现提交哈希,您可以在存储库的文件中指定ident属性,如下所示:.gitattributes

*.c ident

然后你可以写$Id$你的代码,它会自动扩展。在这种情况下,这是唯一可能的。


推荐阅读