多个重复:https://stackoverflow.com/search?q=svnversion
我正在使用TortoiseSVN和SVN服务在Windows服务器上作为服务运行。
我希望在项目提交时或之后更新项目中的版本/内部版本号。这样项目的正确版本/构建将反映在几个地方,如日志文件,资源表,帮助>关于Etc ......
...谢谢
答案 0 :(得分:1)
您可以使用修订标记。
选择一个文件,其中包含一些带修订号的变量/常量。添加svn:keywords SVN属性,其修订版值为此文件(文件为RMB,TortoiseSVN->属性 - >新建,“svn:keywords”为名称,“Revision”为值)。现在,在此文件中,每次出现的“$ Revision $”标记都将替换为“$ Revision:7 $”。 不幸的是,这只是该文件的版本,因此每次构建数量增加时都必须“触摸”。
您可以在SVN Book
中找到更多以这种方式使用的关键字答案 1 :(得分:0)
您可以在生成EXE,安装文件等之前在构建脚本和其他位置执行此操作 -
我将其添加到我的资源/版本信息中的做法是为我的rc文件制作模板文件,使用宏替换,然后在我的EXE项目的预建步骤中添加对SubWCRev的调用。
请参阅this
SubWCRev是您可以使用的工具。
$ WCREV $是用当前svn版本替换的宏。
每个模板文件都在SVN存储库中,但是编译/解释的实际文件是从这些文件生成的。因此,在构建每个生成的输出(exe,安装程序,发行说明等)之前,您将运行subwcrev工具并替换宏。
答案 2 :(得分:0)
将一些内容集成到您的构建过程中,该过程将当前SVN修订版写入源文件(例如,仅包含“const int revision = xxx;”的revision.h),该文件不受版本控制(svn:ignore)并包含这在构建中。
这是一个非常简单的片段来获得这个想法:
echo "const int revision = `svn info | grep Revision | cut -d":" -f 2`;" > revision.h