版本内部版本号与TortoiseSNV

问题描述:

多个复制:https://*.com/search?q=svnversion版本内部版本号与TortoiseSNV


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

我希望项目中的版本/内部版本号在项目提交时或之后进行更新。所以,正确的版本/在建项目将体现在几个地方,如日志文件,资源表,帮助>关于等等...

谢谢...

您可以构建这样做脚本和其他地方之前,你做EXE,安装文件等 -

我所做的将它添加到我的资源/版本信息是为我的rc文件,使用宏替代,然后添加一个调用模板文件到我的EXE项目预建阶段的SubWCRev。

this

SubWCRev是一个工具,你可以利用这一点。

$ WCREV $是被当前svn修订版所取代的宏。

每个模板文件都在SVN存储库中,但是从这些文件生成编译/解释的实际文件。因此,在构建每个生成的输出(exe,安装程序,发行说明等)之前,您需要运行subwcrev工具并替换宏。

将某些东西整合到构建过程中,该构建过程将当前SVN修订版写入源版本文件(例如revision.h中只包含一个“const int revision = xxx;”),该版本不受版本控制(svn:ignore)将其包含在构建中。

这里是一个非常简单的代码段的想法:

echo "const int revision = `svn info | grep Revision | cut -d":" -f 2`;" > revision.h 
+0

不会是从资源文件访问或安装脚本找到更多的关键字以这种方式工作。次要的是你想要的。 – Tim 2009-07-17 14:16:49

+0

我不会说subwcrev不是正确的选择 - 它可能是OP的问题。但我的建议可以从资源文件或安装脚本中访问。你也可以使用“sed”来替换像subwcrev那样的占位符。另外,它将是跨平台的(Cygwin),可用于没有安装图形SVN客户端的CI构建从站。 – digitalbreed 2009-07-17 15:20:29

您可以使用修订标记。

选择一个文件,其中包含一些变量/常数与修订号。将svn:关键字SVN属性修改为这个文件(文件中的人民币,TortoiseSVN->属性 - >新建,“svn:关键字”作为名称,“版本”作为值)。现在在这个文件中,例如“$ Revision $”标签的每一处都会被替换为“$ Revision:7 $”。 不幸的是,这只是该文件的版本,所以每次构建编号增加时都必须“触及”它。

可以在SVN Book