在文本文件中更新版本
Subversion to Update the ver in a text file
我陷入了一个循环陷阱…我们在一个专用的服务器上构建,所以当我们进行拉取和构建时,我想更新项目中的版本信息,以显示一个版本,这样最后一个数字就是当前拉取的"版本"号。
但是如果脚本更新了该文件,那么它就不是当前的。所以我需要重新提交该文件,或合并它在下一次拉,或…?然后版本号递增。
我在一个c++程序中解决了这个问题,方法是把实际的版本号放在一个不受SVN控制的文件中。现在脚本可以"svn update",获取修订号,更改本地文件,并构建。但是,这会创建一个不受SVN控制的文件的依赖项。
此外,在有些项目中,我似乎无法将版本号外部化到一个专用文件中,并且使该文件不受SVN的控制。
我真正想看到的是一个"捕捉器"标签,SVN会在SVN提交(或SVN更新)时更新它。一些任意的东西,比如:{!SVN_REV}因此,我的c#汇编文件可能看起来像这样:
[assembly: AssemblyFileVersion("1.1.0.{!SVN_REV}")]
其他版本控制系统支持这种能力。在Subversion中有这样的方法吗?
谢谢你的建议。Scotty
如果脚本更新了该文件,那么它就不是当前的
不,它是当前(它的信息),你不能只是保存这个小的更改在存储库(最好和最简单的方法)
从另一边,你可以
- 在存储库中存储模板文件(阅读SubWCRev和它的关键字)
- 在构建阶段,在第一阶段用关键字创建额外的非版本文件,用真实的(实际数据)代替,并使用这个文件,而不是模板
相关文章:
- 为什么 odeint 在较新版本的 odeint 中失败?
- 新版本的 SDL 不允许我使用SDL_image
- 新版本的 g++ 与旧版本的 libstdc++
- 使用较新版本的 g++ 导致多线程性能下降?
- 将词法分析器字符串累加器移植到新版本的 Quex 时出现问题
- 如果您用新版本覆盖共享库(当前由程序映射)会发生什么
- C++自动更新到新版本
- 使用WinSparkle更新新版本后,它不会自动启动应用程序
- 在 gcc 4.4 上"pure virtual function called",但在较新版本或 clang 3.4 上不
- 较新版本的GCC抛出reinterpret_cast错误
- 为什么较新版本的C++不允许在类声明中定义纯方法?
- cmd 命令启动无法与新版本的 mingw32-make.exe一起使用?
- MFC ole服务器移植到较新版本 - afxgetThread返回null
- 将早期 MSVC 版本生成的代码重新生成为较新版本时可能遇到的问题
- C++ 是在每个实例化上创建的模板类中每个方法的新版本
- 将旧版本的MFC与新版本的Visual Studio一起使用
- 如何使用新版本的 Node Nan 持久化
- 如何更新 clang 版本以编译 C++11 项目?(在 Mac 上)
- C++标准的新版本已经发布了吗
- Visual Studio C++在生成后不会更新新代码