我想实现一种在代码中记录项目版本的方法,以便在测试时使用它并帮助跟踪错误。 似乎最好使用的版本号就是 Subversion 的当前修订版号。有没有一种简单的方法可以将这个数字挂接到(在我的例子中是 C++)头文件或其他东西,然后我可以在代码中获取?我想这是提交后 Hook 之类的?
有没有人有任何实现此方法的经验(请分享代码?),或者可以提出更好的替代方案? 谢谢。
最佳答案
两种方式:
在代码中嵌入 $Id$ 或 $Revision$。然后在文件上设置 svn:keywords="Id Revision" 属性。这将为您提供该源文件的最后修改版本。适用于较小的项目和脚本。
或者,使用 Makefile 驱动进程和命令行工具 svnversion。 (特定于语言——这应该适用于 C/C++)
echo -n "#define VERSION 1.0.1-" > version.h
svnversion -n . >> version.h
或者使用 sed 和 version.h.in 的一些更复杂的构建脚本。然后只是#include version.h
这将为您提供存储库版本号,该版本号会随着每次提交/更新而变化,并且对于大多数项目来说可能是更合适的版本号。
注意:我还使用了我手动更新的人类可读版本字符串。该示例将给出:版本:1.0.1-r13445
~J
关于svn - 将 subversion 存储库编号获取到代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16248/