我提交后如何在源代码中存储新的SVN修订号? (TortoiseSVN的)

时间:2010-02-24 19:09:23

标签: svn tortoisesvn revision

通过TortoiseSVN,是否有可能知道您将在提交之前获得的SVN转数,以便我可以将rev#放入源代码注释部分?

也许有一个特殊的键名/变量可以放入我的文件中,TortoiseSVN将自动替换为它即将提交的rev#?

这背后的动机是我可以通过查看源代码来获取最新的构建并查看它包含的SVN版本。它也给管理层带来了温暖的模糊。

5 个答案:

答案 0 :(得分:13)

Subversion does support keyword expansion,但您可能需要read here before choosing to implementing it

为什么避免使用已经在SVN中的内容修改已提交的文件通常是一个好主意,这有很多原因。上面的第二个链接提供了有关为什么这可能是一个坏主意的更多细节。但基本上,差异和补丁可能会成为问题。

您也不需要复制Subversion捕获的信息,因为这可以通过log命令轻松获得。

答案 1 :(得分:4)

SVN Special keywords - 具体来说:“$ Revision $”

答案 2 :(得分:0)

如果您正在使用某种构建工具来打包代码,例如Ant,则可以在构建过程中包含SVN属性查询。

因为我在Ant中只有这样的经验,所以它是这样的:

<svn svnkit="true" javahl="false">
    <status path="." lastChangedRevisionProperty="svn.lastRev"/>
</svn>

设置svn.lastRev属性后,您可以将其注入代码注释 - 可能通过令牌替换。我不确定这是否正是您正在寻找的。我同意,很高兴看到你的代码,知道什么是SVN rev。它来自。

答案 3 :(得分:0)

将SVN版本号存储在项目的每个源文件中并不重要。

例如,可以将文件“ svn.c”添加到其项目中,并让SVN在每次提交时写以下行:

size_t svn_revision = n;        /* n is the revision number written by SVN */

之后,例如,可以在启动时printf() svn_revision变量。

答案 4 :(得分:0)

您还可以使用SVN的关键字替换功能。

示例:

在C源文件中添加以下注释:

/ * SVN版本号= $ Revision * /

$ Revision将替换为实际的提交修订版本号:

/ * SVN版本号= 123 * /

在这里看看: http://svnbook.red-bean.com/en/1.7/svn.advanced.props.special.keywords.html

Ciao, 恩里科·米格里尔(Enrico Migliore)