使用TortoiseSVN对版本号进行版本控制

时间:2009-07-17 12:32:24

标签: visual-studio-2008 svn build-process tortoisesvn

多个重复:https://stackoverflow.com/search?q=svnversion


我正在使用TortoiseSVN和SVN服务在Windows服务器上作为服务运行。

我希望在项目提交时或之后更新项目中的版本/内部版本号。这样项目的正确版本/构建将反映在几个地方,如日志文件,资源表,帮助>关于Etc ......

...谢谢

3 个答案:

答案 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