【发布时间】:2012-01-03 04:28:31
【问题描述】:
在使用Subversion 管理的项目中使用Autoconf 时,我会将这段代码放在configure.ac 中:
AC_REVISION($Revision: 1234 $)
对于svn:keywords Revision,AC_REVISION 会将configure.ac 的修订号插入到生成的configure 脚本中。
如何在使用Git 管理的项目中做类似的事情?
Git 没有像$Revision$ 这样的关键字,也没有这样的修订号。但它确实有用于提交的 SHA1 和 git describe。我只是不确定如何将其合并到configure.ac。
【问题讨论】:
-
如果您使用的是类 unix 系统,您可以编写一个 git-hook 来执行
sed -i 's/\$Revision/$REVISION/g' configure.ac(只是一个示例)。如果您愿意,$REVISION变量可能包含git describe的结果。听起来有道理?否则,您可能会使用$Id:$,它将被替换为 blob 的 sha1(而不是提交)。请参阅[此问题] (stackoverflow.com/questions/384108/…)。 -
使用分布式 SCM 时另请阅读 why this is not a good idea。
-
@jweyrich,
AC_REVISION是一个仅供内部使用的版本字符串(即它出现在生成的configure脚本的源代码中,但不会显示给用户)。为此使用提交的 SHA1 没有任何问题。