我的要求很简单。在每个文件的开头应该有一个块注释,如下所示:
/*
* This file was last modified by {username} at {date} and has revision number {revisionnumber}
*/
我想使用{username}
中的相应内容填充{date}
,{revisionnumber}
和SVN
。
如何通过NetBeans
和Subversion
实现这一目标?我搜索了很多,但我找不到我需要的东西。
答案 0 :(得分:13)
我查看了this问题并获得了一些有用的信息。它并不完全重复,因为我正在使用NetBeans
,但这个想法是一样的。这是我的标题:
/*
* $LastChangedDate$
* $LastChangedRevision$
*/
然后我去团队> Subversion> Svn属性并将svn:keywords
添加为属性名称,将LastChangedDate LastChangedRevision
添加为属性值。
当我从NetBeans
提交时,它看起来像这样:
/*
* $LastChangedDate: 2012-02-13 17:38:57 +0200 (Пн, 13 II 2012) $
* $LastChangedRevision: 27 $
*/
感谢大家的支持!我会接受我的回答,因为其他答案不包括NetBeans
信息。不过,我将+1
给予其他答案。
答案 1 :(得分:10)
由于此数据仅在文件提交后存在,因此应由SVN本身设置,而不是客户端程序。 (客户端处理往往会被禁用或根本没有配置。)这意味着没有像你想要的简单模板/替代品,因为在第一次替换之后,模板变量将会丢失。
您可以找到SVN关键字替换here的信息。然后$Rev$
之类的内容可以替换为$Rev: 12 $
。
答案 2 :(得分:4)
您可以使用The SubWCRev Program执行此操作。
SubWCRev是Windows控制台程序,可用于读取 Subversion工作副本的状态,并可选择执行关键字 在模板文件中替换。这经常被用作一部分 构建过程作为合并工作副本信息的手段 进入你正在建造的物体。通常它可能会被用来 在“关于”框中包含修订号。
这通常在构建过程中完成。
如果您使用Linux,则可以找到Linux二进制文件here。如果您愿意,也可以使用svn log
的输出编写自己的。
答案 3 :(得分:4)
我遵循了Petar Minchev的建议,只是我将$ LastChangedRevision $标记放在注释块中,但是将其嵌入到字符串中。现在可以在帮助中以编程方式显示修订号 - >关于对话框。
String build = "$LastChangedRevision$";
稍后我可以使用一个整理了所有绒毛的字符串在about对话框中显示修订值。
String version = build.replace("$LastChangedRevision:", "").replace("$", "").trim();
答案 4 :(得分:0)
我建议采用略有不同的方法。
将以下标题放在源文件的顶部。
/*
* 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}