【问题标题】:Subversion current revision number in a file颠覆文件中的当前修订号
【发布时间】:2010-07-14 16:48:32
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: svn build


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

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

    对于 Linux 平台,我只是假设如果机器可以检查源代码,它一定有 svnversion...但也许我在这里错了。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多