c++ - 使用 Visual Studio 2008 和 SVN 在 C++ 中进行自动版本控制

标签 c++ svn visual-c++ visual-studio-2008 version

我正在使用 MS Visual Studio 2008 在 C++ 中做一些开发工作,目前我们有一个版本函数,它返回一个表示版本号的硬编码字符串。我想找出一种方法,而不是硬编码数字,它可以从 1 开始,每次我进行调试或发布构建时递增 1(或者更好的是,跟踪调试版本和发布版本号)。或者,如果这不可能,请使用当前日期/时间作为版本号。

请注意,因为会有几个人在项目上工作并使用 SVN,所以代码必须与计算机无关(这意味着如果我当前使用的是 100 版本,我同事的上一个版本是 90 版本,那么下一个时间(我 checkin 代码,同事拉出代码后),他下次编译的版本号应该是101,而不是91。)

你能帮忙吗?

最佳答案

如果您使用的是 TortoiseSVN,则可以使用 subwcrev.exe在预构建事件中将当前修订号写入源文件。

因此, checkin 文件 version.template.hpp 并添加类似的内容

  const string version = "13.12.0.$WCREV$";

添加项目预构建事件

subwcrev.exe "$(SolutionDir)." "$(ProjectDir)version.template.hpp" 
             "$(ProjectDir)version.hpp"

并包含生成的文件#include "version.hpp"

关于c++ - 使用 Visual Studio 2008 和 SVN 在 C++ 中进行自动版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20885981/

相关文章:

c++ - 如何在没有临时设置的情况下将设置差异 s1-s2 存储在 s1 中?

c++ - 在返回引用的函数上使用 __declspec(nothrow)

svn - 仅将已删除的文件提交到 Subversion

svn - 从 Subversion 提交相关的外部

visual-c++ - 在英特尔实感中保存 RGB 和深度图像

visual-c++ - _umul128 在 Windows 32 位上

c++ - 在 C++ 中强制执行函数参数的类型

c++: 将 vector<char> 转换为 double

svn - 如何在 SVN 中撤消提交?

visual-studio-2010 - Visual C++ 2010,如何找到失败的构建后步骤?