Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在源代码中包含SVN修订号_Java_Svn_Version Control_Netbeans - Fatal编程技术网

Java 在源代码中包含SVN修订号

Java 在源代码中包含SVN修订号,java,svn,version-control,netbeans,Java,Svn,Version Control,Netbeans,我的要求很简单。在每个文件的开头都应该有如下的块注释: /* * This file was last modified by {username} at {date} and has revision number {revisionnumber} */ /* * $LastChangedDate: 2012-02-13 17:38:57 +0200 (Пн, 13 II 2012) $ * $LastChangedRevision: 27 $ */ 我想用SVN中的适当内容填充

我的要求很简单。在每个文件的开头都应该有如下的块注释:

/*
 * This file was last modified by {username} at {date} and has revision number {revisionnumber}
 */
/*
 * $LastChangedDate: 2012-02-13 17:38:57 +0200 (Пн, 13 II 2012) $
 * $LastChangedRevision: 27 $
 */
我想用
SVN
中的适当内容填充
{username}
{date}
{revisionnumber}

如何使用
NetBeans
Subversion
实现这一点?我搜索了很多,但找不到确切的我需要的东西。

你可以用它来做

SubWCRev是Windows控制台程序,可用于读取 Subversion工作副本和可选执行关键字的状态 模板文件中的替换。这通常被用作 构建过程作为合并工作副本信息的一种手段 进入您正在构建的对象。通常,它可能用于 在“关于”框中包含修订号

这通常在构建过程中完成

如果您使用Linux,您可以找到一个Linux二进制文件。如果愿意,还可以使用
svn log
的输出编写自己的日志

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

您可以找到有关SVN关键字替换的信息。然后像
$Rev$
这样的东西可以被
$Rev:12$

代替。我看了这个问题,得到了一些有用的信息。它不是完全重复的,因为我使用的是
NetBeans
,但想法是一样的。这是我的标题:

/*
 * $LastChangedDate$
 * $LastChangedRevision$
 */
然后我转到Team>Subversion>Svn properties并将
Svn:keywords
添加为属性名称,将
LastChangedDate LastChangedRevision
添加为属性值

当我从
NetBeans
提交时,它看起来是这样的:

/*
 * This file was last modified by {username} at {date} and has revision number {revisionnumber}
 */
/*
 * $LastChangedDate: 2012-02-13 17:38:57 +0200 (Пн, 13 II 2012) $
 * $LastChangedRevision: 27 $
 */

谢谢大家的支持!我将接受我的答案,因为其他答案不包括
NetBeans
信息。尽管如此,我还是对其他答案给出了
+1

我建议采用稍微不同的方法

将以下标题放在源文件的顶部

/*
 * This file was last modified by {username} at {date} and has revision number {revisionnumber}
 */
然后添加如下的shell脚本

更新后,签出脚本

USERNAME=# // use svnversion to get username
DATE=# // use svnversion to get revisio nnumber
sed -e "s#{username}#${USERNAME}#" -e "s#{date}#${DATE}#" ${SOURCE_CONTROL_FILE} > ${SOURCE_FILE}
预提交脚本

cat standard_header.txt > ${SOURCE_CONTROL_FILE}
tail --lines $((${LENGTH}-4)) ${SOURCE_FILE} >> ${SOURCE_CONTROL_FILE}

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

String build = "$LastChangedRevision$";
稍后,我可以使用修剪了所有绒毛的字符串在“关于”对话框中显示修订值

String version = build.replace("$LastChangedRevision:", "").replace("$", "").trim();

在Eclipse中也可以实现这一点:右键单击项目树。选择团队->设置属性,从属性名称列表中选择
svn:keywords
,并在“输入属性”文本框中键入:
LastChangedDate LastChangedRevision
尝试添加svn:keywords时,NB 8中不会发生任何事情。我使用相同的方法。