我们正在使用ant构建项目。我想在打包版本中包含一个包含当前SVN修订版本的文本文件。我目前的想法是做一个svn info
并将其输出传递给一个文件然后包含在该版本中。
你以前做过这个吗?有没有标准的方法可以这样做?
答案 0 :(得分:1)
如果您在机器上有TortoiseSVN,则可以使用SubWCRev命令 SubWCRev可以用当前的svn版本替换给定文件的一部分。
在我的项目中,我有一个template file(请注意字符串$WCREV$
)和一个bat-file,它会生成一个填写了修订版的新文件。
答案 1 :(得分:1)
存在一种叫做
的工具 svnversion
正是为此目的而准备的。 svnversion是命令行客户端的一部分。问题是你正在使用什么样的构建系统?
答案 2 :(得分:0)
我使用一个脚本来执行此操作,该脚本使用awk脚本生成可以包含的名为_vni的文件。生成的文件显然不受SVN控制
#!/bin/ksh
svn update
svn status
svn info | awk -f make-vers.awk
这将创建一个HTML格式的文件,并使用cols
数组中的背景颜色,以便快速区分版本。如果你只想要一个文本文件去除所有HTML gunk。
BEGIN{
cols[ci++] = "#3300FF";
cols[ci++] = "#B300FF";
}
/^Revision\:/{rev = $2}
/^Last Changed Author\:/{auth=$4}
/^Last Changed Date\:/{date=$4}
END{
date = strftime("%d-%b-%Y")
col = cols[rev%ci]
vs = "<div id='vni'>\n";
vs = vs "<p style='background-color: "col"'>BuildInfo: [PRODUCTNAME] V2.0 Product ion: Release "
vs = vs (rev)
vs = vs " - " date
vs = vs " ("auth") "
vs = vs "</p>\n</div>"
OF="vni"
print vs >OF;
}