在文本文件中更新版本

本文关键字:更新 新版本 文件 文本 | 更新日期: 2023-09-27 18:05:58

我陷入了一个循环陷阱…我们在一个专用的服务器上构建,所以当我们进行拉取和构建时,我想更新项目中的版本信息,以显示一个版本,这样最后一个数字就是当前拉取的"版本"号。

但是如果脚本更新了该文件,那么它就不是当前的。所以我需要重新提交该文件,或合并它在下一次拉,或…?然后版本号递增。

我在一个c++程序中解决了这个问题,方法是把实际的版本号放在一个不受SVN控制的文件中。现在脚本可以"svn update",获取修订号,更改本地文件,并构建。但是,这会创建一个不受SVN控制的文件的依赖项。

此外,在有些项目中,我似乎无法将版本号外部化到一个专用文件中,并且使该文件不受SVN的控制。

我真正想看到的是一个"捕捉器"标签,SVN会在SVN提交(或SVN更新)时更新它。一些任意的东西,比如:{!SVN_REV}因此,我的c#汇编文件可能看起来像这样:

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

其他版本控制系统支持这种能力。在Subversion中有这样的方法吗?

谢谢你的建议。Scotty

在文本文件中更新版本

如果脚本更新了该文件,那么它就不是当前的

不,它是当前(它的信息),你不能只是保存这个小的更改在存储库(最好和最简单的方法)

从另一边,你可以

  • 在存储库中存储模板文件(阅读SubWCRev和它的关键字)
  • 在构建阶段,在第一阶段用关键字创建额外的非版本文件,用真实的(实际数据)代替,并使用这个文件,而不是模板