15

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

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

这背后的动机是我可以通过查看源代码来获取最新版本并查看它是由什么 SVN rev 组成的。它还给管理带来了温暖的模糊感。

4

5 回答 5

14

Subversion does support keyword expansion, but you may want to read here before choosing to implementing it.

There are a number of reasons why it's generally a good idea to avoid modifying your committed files with content that is already in SVN. The second link above provides more detail on why this can be a bad idea. But basically, diffs and patches can become problematic.

You also don't need to duplicate the information that Subversion captures because this can be easily obtained via the log command.

于 2010-02-24T19:13:05.470 回答
6

SVN Special keywords - specifically: "$Revision$"

于 2010-02-24T19:16:44.670 回答
0

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

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

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

一旦设置了 svn.lastRev 属性,你就可以将它注入到你的代码注释中——也许通过令牌替换。我不确定这是否正是您正在寻找的。不过我同意,很高兴查看您的代码并知道什么是 SVN rev。它来自。

于 2010-02-24T20:02:06.370 回答
0

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

例子:

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

/* SVN 版本号 = $Revision */

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

/* SVN 版本号 = 123 */

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

Ciao,恩里科·米廖雷

于 2020-10-19T07:54:38.300 回答
0

在项目的每个源文件中存储 SVN 修订号并不重要。

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

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

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

于 2020-07-02T15:12:22.157 回答