C# Subversion更新文本文件中的版本

C# Subversion更新文本文件中的版本,c#,c++,svn,version-control,C#,C++,Svn,Version Control,我在一个圆形的陷阱里。。。 我们是在一个专用服务器上构建的,所以当我们进行拉入和构建时,我想更新项目中的版本信息,以显示一个版本,这样最后一位数字就是当前拉入subversion时的“修订”号 但如果脚本更新了该文件,则该文件不是当前文件。所以我需要重新提交该文件,或者在下一次拉取中合并它,或者。。。?然后,修订号将递增 我在C++程序中解决了这个问题,它把实际的修订号放在一个不在VPN控制之下的文件中。现在,脚本可以“svn update”、捕获修订号、更改本地文件并生成。但是,这会在不受SV

我在一个圆形的陷阱里。。。 我们是在一个专用服务器上构建的,所以当我们进行拉入和构建时,我想更新项目中的版本信息,以显示一个版本,这样最后一位数字就是当前拉入subversion时的“修订”号

但如果脚本更新了该文件,则该文件不是当前文件。所以我需要重新提交该文件,或者在下一次拉取中合并它,或者。。。?然后,修订号将递增

我在C++程序中解决了这个问题,它把实际的修订号放在一个不在VPN控制之下的文件中。现在,脚本可以“svn update”、捕获修订号、更改本地文件并生成。但是,这会在不受SVN控制的文件上创建依赖项

此外,在一些项目中,我似乎无法将版本号外部化为一个专用文件,并将该文件置于SVN控制之外

我真正希望看到的是一个“eyecatcher”标记,SVN将在SVN提交(或SVN更新)时更新该标记。任意的东西,比如:{!SVN_REV} 因此,我的C#汇编文件可能如下所示:

[assembly: AssemblyFileVersion("1.1.0.{!SVN_REV}")]
其他版本控制系统支持这种能力。在Subversion中是否有这样的功能

谢谢你的建议。 斯科蒂

如果脚本更新该文件,则该文件不是当前文件

不,它是最新的(it信息术语),您不能在存储库中保存这个小更改(最好也是最简单的方法)

从另一边,你可以

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

我也想知道!我们控制该文件的版本;皮塔。我真正需要的是一个实用的解决方案,在这个解决方案中,我可以注入所需的版本号(通过ANT或VS安装项目或Jenkins或?),并在构建过程中进行传播,以便在我们安装时,Windows“程序和功能”显示新的版本号。相关:好的,语义。。。存储库不是最新的,因此开发人员确实可以访问它。我拥有的脚本执行更新,然后构建。那么它应该把这个更改提交回去吗?如果我必须重新提交一个数字增量,那么它的计数毫无意义。因为如果我再次运行它,我将有一个新的修订号,它与任何真正的更改或修复无关。这正是我试图避免的。目前,我正沿着一个非版本化文件的路径前进,该文件将替换版本化文件中的关键字。“那么它应该重新提交此更改吗?”-永远不会。只需将此更改还原到文件中