浏览git文档时,我看不到任何类似于SVN的提交钩子或"propset"功能的东西,可以说,只要它提交到存储库,就可以更新文件中的版本号或版权声明.
git用户是否希望为这种功能编写外部脚本(这看起来似乎不可能)或者我只是错过了一些明显的东西?
编辑:为了清楚,我更感兴趣,例如,
svn propset svn:keywords "Author Date Id Revision" expl3.dtx
这样的字符串:
$Id: expl3.dtx 780 2008-08-30 12:32:34Z morten $
每当发生提交时,都会与相关信息保持同步.
我在其他地方写了一个相当完整的答案,代码显示了如何做到这一点.总结:
你可能不想这样做.使用git describe
是一种合理的选择.
如果你确实需要这样做,$Id$
并且$Format$
相当容易.
任何更高级的东西都需要使用gitattributes
和自定义过滤器.我提供了一个示例实现$Date$
.
基于钩子函数的解决方案通常没有帮助,因为它们会使您的工作副本变脏.
引用Git常见问题解答:
git是否有关键字扩展?
不建议.关键字扩展会导致各种奇怪的问题,并且无论如何都不是很有用,特别是在SCM的上下文中.在git之外,您可以使用脚本执行关键字扩展.Linux内核导出脚本执行此操作以在Makefile中设置EXTRA_VERSION变量.
如果你真的想这样做,请参阅gitattributes(5).如果您的翻译不可逆(例如SCCS关键字扩展),这可能会有问题.