Subversion更新文本文件中的ver

时间:2015-07-31 15:31:00

标签: c# c++ svn version-control

我在这里陷阱 我们正在构建一个专用服务器,所以当我们进行拉动和构建时,我想更新项目中的版本信息,以显示一个版本,使得最后一个数字是当前拉动颠覆的“修订版”号。

但是如果脚本更新了该文件,那么它不是最新的。所以我需要重新提交该文件,或者在下一次拉动中合并它,或者......?然后修订号增加。

我通过将实际修订号放在不受SVN控制的文件中,在C ++程序中解决了它。现在脚本可以“svn update”,捕获修订号,更改本地文件,并构建。但是,这会对不受SVN控制的文件产生依赖性。

此外,有些项目似乎无法将版本号外部化为专用文件,并将该文件保留在SVN控件之外。

我真正希望看到的是SVN在svn提交(或svn更新)时更新的“引人注目”标记。像任意一样:{!SVN_REV} 所以,我的C#程序集文件可能如下所示:

[assembly: AssemblyFileVersion("1.1.0.{!SVN_REV}")]

其他版本控制系统支持这种能力。 Subversion有没有这样做呢?

感谢您的任何建议。 斯科蒂

1 个答案:

答案 0 :(得分:0)

  

如果脚本更新该文件,则它不是最新的

不,它是当前(它的信息条款),你可以不在存储库中保存这个微小的变化(最好和最简单的方法)

从另一方面来说,你可以

  • 将模板文件存储在存储库中(阅读SubWCRev及其关键字)
  • 在构建阶段,在第一阶段使用关键字创建额外的非版本化文件,用实际(实际数据)替换并使用文件,而不是模板