Subversion文件中的当前修订版号

时间:2010-07-14 16:48:33

标签: svn build

我正在使用Subversion在Google Code上托管一个项目。我想用版本号标记构建。

我研究过的一种可能性是使用svn:keywords将修订号替换为某个文件。这不完全是我想要的,因为它只会告诉上次更改该特定文件的时间。

另一种选择是使用svnversion命令的输出作为构建过程的一部分。这也不完全理想,因为该命令可能不会出现在构建代码的所有系统上。我的一个想法是通过查找.svn目录中的修订号来创建一个模拟svnversion的简单脚本。

所以我的问题是,什么是实现上述目标的独立于平台的方式?或者,我在哪里可以找到.svn / all-wcprops等文件的规范(所以我可以推出自己的解决方案)?

3 个答案:

答案 0 :(得分:1)

您可能正在寻找 .svn / entries 文件。 .svn / entries文件的格式随时间而变化。它最初是一个XML文件,现在使用自定义但仍然是人类可读的文件格式。

答案 1 :(得分:0)

我正在使用svnversion(在linux下)和SubWCRev.exe(在windows下)。后者是TortoiseSVN中包含的工具。我实际上把它放在我的源代码库中,以确保它在每个(windows)构建机器上都可用。

对于Linux平台,我只是假设如果机器可以检查源,它必然有svnversion ......但也许我错了。

请注意,这两个工具的使用方式不同:svnversion在标准输出上显示版本,因此您需要使用它并按照自己的方式修补源。 SubWCRev.exe能够通过替换特定关键字来修补现有文本文件。

答案 2 :(得分:0)

我们还使用svn修订号标记我们的构建版本。查看我们作为预构建事件运行的批处理文件,以提取修订版号(并将其烘焙到资源文件中)here