在源代码中包含SVN修订号

Pet*_*hev 17 java svn version-control netbeans

我的要求很简单.在每个文件的开头应该有一个块注释,如下所示:

/*
 * This file was last modified by {username} at {date} and has revision number {revisionnumber}
 */
Run Code Online (Sandbox Code Playgroud)

我想填充{username},{date}{revisionnumber}与适当的内容SVN.

我如何与实现这一目标NetBeansSubversion?我搜索了很多,但我找不到我需要的东西.

Pet*_*hev 13

我看了这个问题,得到了一些有用的信息.它并不完全重复,因为我正在与之合作,NetBeans但这个想法是一样的.这是我的标题:

/*
 * $LastChangedDate$
 * $LastChangedRevision$
 */
Run Code Online (Sandbox Code Playgroud)

然后我转到Team> Subversion> Svn属性并添加svn:keywords为属性名称和LastChangedDate LastChangedRevision属性值.

当我承诺NetBeans它时看起来像这样:

/*
 * $LastChangedDate: 2012-02-13 17:38:57 +0200 (??, 13 II 2012) $
 * $LastChangedRevision: 27 $
 */
Run Code Online (Sandbox Code Playgroud)

谢谢大家的支持!我会接受我的回答,因为其他答案不包括这些NetBeans信息.不过我还是给+1了其他答案.


Hau*_*idt 10

由于此数据仅文件提交存在,因此应由SVN本身设置,而不是客户端程序.(并且客户端处理往往会被禁用或根本没有配置.)这意味着没有您想要的简单模板/替代品,因为在第一次替换后,模板变量将丢失.

您可以在此处找到与SVN关键字替换相关的信息.那么类似的东西$Rev$可以被替换$Rev: 12 $.


小智 5

我遵循了 Petar Minchev 的建议,只是我没有将 $LastChangedRevision$ 标签放在注释块中,而是将其嵌入到字符串中。现在可以在“帮助”->“关于”对话框中以编程方式显示修订号。

String build = "$LastChangedRevision$";
Run Code Online (Sandbox Code Playgroud)

稍后我可以使用已修剪掉所有绒毛的字符串在“关于”对话框中显示修订值。

String version = build.replace("$LastChangedRevision:", "").replace("$", "").trim();
Run Code Online (Sandbox Code Playgroud)