【问题标题】:How to manage revision numbering in a SVN tag?如何管理 SVN 标签中的修订编号?
【发布时间】:2019-07-09 11:21:11
【问题描述】:

我想知道如何处理我的软件项目中的 RN(修订号)。 RN 放在一个单独的头文件中,并显示在 about 视图中,看起来像这样:v1.23.456

通常我会这样创建一个标签:

1.创建标签:

svn copy http://myrepo/trunk http://myrepo/tags/1.23.456 -m"Tagged version 1.23.456"

2。查看标签并编辑 RN:

svn co http://myrepo/tags/1.23.456
gedit revisionNumber.h

3.签入改编后的 RN:

svn ci revisionNumber.h -m"Adadpted RN"

--> 编辑标签是一个不好的解决方法。但我不知道另一种管理 RN 的方法。所以我的问题是:

如何管理 SVN 标签中的修订编号?

【问题讨论】:

    标签: svn tags versioning release release-management


    【解决方案1】:

    一种可能的解决方案是使用gedit revisionNumber.h 编辑版本并将此更改提交到主干 标记您的版本。

    对正在进行的工作使用一些 -dev 或 -nightly 标签,例如 1.23.456-dev。从版本中删除 -dev 并在准备好后标记您的版本。

    顺便说一句,请查看 Apache Subversion 项目的 Making Subversion Releases 指南。它可能会为您提供更多信息,并可能回答您的其他问题。

    【讨论】:

      【解决方案2】:

      您可以通过以下两种方式之一进行操作,具体取决于您构建已发布软件的方式。

      提交后强制执行手册

      1. 在标记之前提交revisionNumber.h
      2. 写一个post-commit,它只允许在revisionNumber.h 正确的情况下创建一个标签(它与标签匹配)。您可以使用svnlook catgrep 在提交后挂钩中实现此功能。

      这种方法的缺点是您仍然需要在两个地方更新修订号,但提交后挂钩至少可以确保您不会搞砸。

      构建机器人

      这仅适用于您有构建机器人或构建过程的情况。

      1. 要创建标签,请在标签文件夹中使用svn copy 命令。
      2. 编写一个提交后挂钩,观察此文件夹并启动构建,为构建提供标签。
      3. 构建机器人更新 revisionNumber.h 并生成构建。

      在这种方法中,revisionNumber.h 永远不会在您的存储库中更新,因此大多数时候版本号可能无效。如果您的代码依赖于修订号(即,它不是仅用于显示),这可能不是一个好的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-07
        • 1970-01-01
        • 2011-01-15
        • 1970-01-01
        • 2011-01-04
        • 1970-01-01
        • 2015-12-30
        相关资源
        最近更新 更多