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

问题描述 投票:1回答:1

我想知道如何在我的软件项目中处理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个回答
1
投票

您可以使用以下两种方法之一,具体取决于您构建已发布软件的方式。

手动执行后提交

  1. 在标记之前提交revisionNumber.h
  2. 写一个post-commit,如果revisionNumber.h正确(它与标签匹配),只允许制作标签。您可以使用svnlook catgrep在post-commit钩子中实现它。

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

建立机器人

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

  1. 要创建标记,请将svn copy命令用于标记文件夹。
  2. 编写一个post-commit钩子,它会观察这个文件夹并启动一个构建,为构建提供标记。
  3. 构建机器人更新revisionNumber.h并生成构建。

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


2
投票

其中一个可能的解决方案是使用gedit revisionNumber.h编辑版本,并在标记发布之前将此更改提交到主干。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.