如何在SVN标签中管理修订版本号?

4

我想知道如何处理我的软件项目中的RN(修订号)。RN放在一个单独的头文件中,并显示在关于视图中,类似于这样: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标签中管理修订版本号?

2个回答

2
可能的解决方案之一是使用 gedit revisionNumber.h 编辑版本,并在标记发布之前将此更改提交到主干。
对于正在进行的工作,可以使用一些类似于 1.23.456-dev 的 -dev 或 -nightly 标签。准备好后,请从版本中删除 -dev 并标记您的发布。
顺便说一下,可以查阅 Apache Subversion 项目的 Making Subversion Releases 指南。它可能会提供更多信息并可能回答您的其他问题。

1
你可以采用两种方式之一来完成,具体取决于你如何构建发布软件。
手动方式并进行提交后的执行:
1.在打标签之前提交“revisionNumber.h”。 2.编写一个post-commit,只有当“revisionNumber.h”正确(与标签匹配)时才允许创建标签。你可以使用“svnlook cat”和“grep”在post-commit钩子中实现此操作。
这种方法的缺点是,仍然需要在两个地方更新版本号,但post-commit钩子至少可以确保你不会出错。
构建机器人:
这仅适用于你拥有构建机器人或构建过程的情况。
1.使用你的“svn copy”命令将其复制到标签文件夹中以创建标签。 2.编写一个post-commit钩子,观察此文件夹并启动构建,为构建提供标签。 3.构建机器人更新“revisionNumber.h”并生成构建。
在这种方法中,revisionNumber.h从未在您的存储库中更新,因此版本号大部分时间可能无效。如果您的代码依赖于修订号(即它不仅仅用于显示),那么这可能不是一个好的解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接