【发布时间】:2015-07-31 15:30:59
【问题描述】:
我在这里陷入了一个圆形陷阱... 我们正在专用服务器上构建,因此当我们进行拉取和构建时,我想更新项目中的版本信息以显示版本,使得最后一位数字是当前拉取的“修订”号以进行颠覆。
但是如果脚本更新了那个文件,那么它就不是最新的。所以我需要重新提交该文件,或者在下一次拉取中合并它,或者......?然后修订号递增。
我在一个 C++ 程序中解决了这个问题,方法是将实际的修订号放在一个不受 SVN 控制的文件中。现在脚本可以“svn update”,捕获修订号,更改本地文件,并构建。但是,这会创建对不受 SVN 控制的文件的依赖。
此外,在某些项目中,我似乎无法将版本号外部化到专用文件中,并使该文件不受 SVN 控制。
我真正希望看到的是 SVN 会在 svn 提交(或 svn 更新)时更新的“引人注目的”标签。像这样随意的东西:{!SVN_REV} 因此,我的 C# 程序集文件可能如下所示:
[assembly: AssemblyFileVersion("1.1.0.{!SVN_REV}")]
其他版本控制系统支持这种能力。 Subversion 有没有办法做到这一点?
感谢您的任何建议。 斯科蒂
【问题讨论】:
-
我也想知道!我们对该文件进行版本控制;皮塔饼。我真正需要的是一个实用的解决方案,我可以在其中注入所需的版本号(通过 ANT 或 VS 安装项目或 Jenkins 或?)并让它在构建过程中传播,这样当我们安装时,Windows“程序和功能”会显示那个新版本号。
标签: c# c++ svn version-control