将版本号和SVN URL包含在发行版中

时间:2011-02-28 11:00:21

标签: svn release

我们正在使用ant构建项目。我想在打包版本中包含一个包含当前SVN修订版本的文本文件。我目前的想法是做一个svn info并将其输出传递给一个文件然后包含在该版本中。

你以前做过这个吗?有没有标准的方法可以这样做?

3 个答案:

答案 0 :(得分:1)

如果您在机器上有TortoiseSVN,则可以使用SubWCRev命令 SubWCRev可以用当前的svn版本替换给定文件的一部分。

在我的项目中,我有一个template file(请注意字符串$WCREV$)和一个bat-file,它会生成一个填写了修订版的新文件。

答案 1 :(得分:1)

存在一种叫做

的工具
 svnversion

正是为此目的而准备的。 svnversion是命令行客户端的一部分。问题是你正在使用什么样的构建系统?

答案 2 :(得分:0)

我使用一个脚本来执行此操作,该脚本使用awk脚本生成可以包含的名为_vni的文件。生成的文件显然不受SVN控制

了Dorel

#!/bin/ksh
svn update
svn status
svn info | awk -f make-vers.awk

使-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;
}