我想知道如何在我的软件项目中处理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标签中的修订版编号?
您可以使用以下两种方法之一,具体取决于您构建已发布软件的方式。
revisionNumber.h
。revisionNumber.h
正确(它与标签匹配),只允许制作标签。您可以使用svnlook cat
和grep
在post-commit钩子中实现它。这种方法的缺点是你仍然需要在两个地方更新修订号,但是提交后挂钩至少可以确保你不会搞砸。
这仅适用于您具有构建机器人或构建过程的情况。
svn copy
命令用于标记文件夹。revisionNumber.h
并生成构建。在这种方法中,revisionNumber.h
永远不会在您的存储库中更新,因此版本号在大多数情况下可能无效。如果您的代码取决于修订版号(即,它不仅用于显示),这可能不是一个好的解决方案。
其中一个可能的解决方案是使用gedit revisionNumber.h
编辑版本,并在标记发布之前将此更改提交到主干。
对正在进行的工作使用一些-dev或-nightly标签,例如1.23.456-dev
。从版本中删除-dev
并在准备好时标记您的版本。
顺便说一句,看看Apache Subversion项目的Making Subversion Releases指南。它可能会为您提供更多信息,并可能回答您的其他问题。