
Getting the subversion repository number into code
我想实现一种在代码中记录项目版本的方法,以便可以在测试时使用它并帮助跟踪错误。
有没有人有实现此问题的经验(请分享代码?),或者可以提出更好的选择? 两种方式: 将$ Id $或$ Revision $嵌入代码中。然后在文件上设置svn:keywords =" Id修订"属性。这将为您提供该源文件的最新修改版本。适用于较小的项目和脚本。 或者,使用Makefile驱动的进程和命令行工具svnversion。 (特定于语言-适用于C / C ++)
或带有sed和version.h.in的一些更复杂的构建脚本。然后只需#include version.h 这将为您提供存储库版本号,该版本号将随每次提交/更新而更改,并且对于大多数项目而言可能是更合适的版本号。 注意:我还使用了人工更新的版本字符串。该示例将给出:版本:1.0.1-r13445 ?J 令人敬畏的是,revision关键字技巧仅在该版本中的文件更改时更新文件-如果您不更改文件,则它将继续反映旧版本。 如果您希望软件始终反映总的修订版本号,则必须深入研究相关的SVN条目文件并将其解压缩,这并不难(这是一个XML文件)。 Wikipedia在其版本页面上进行此操作,以指示正在运行的软件的修订版;代码在这里-寻找getSvnRevision()方法。 您还可以使用SubWCRev,它是TortoiseSVN的一部分。 SubWCRev是Windows控制台程序,可用于读取Subversion工作副本的状态并可以选择在模板文件中执行关键字替换。这通常在构建过程中用作将工作副本信息合并到要构建的对象中的一种方法。通常,它可能用于在"关于"框中包含修订号。 http://tortoisesvn.net/docs/release/TortoiseSVN_zh/tsvn-subwcrev.html 在您的Makefile中,添加:
那么您可以在代码中的任何位置使用宏
您可以使用
然后,您可以在代码中使用 有关Subversion手册的更多信息 一个很好的最新解决方案:
创建包含以下行的
并且
现在: |