【发布时间】:2012-10-14 05:17:17
【问题描述】:
由于获得major.minor.release 格式,我正在尝试更改svn 修订号。 在我的配置中,svn 修订号每次提交都会增加一。 应该可以改了吧?
我正在研究如何使用 perl 来做到这一点,但如果你能建议一种 ace in the hole 解决方案,那对我来说将是黄金。
【问题讨论】:
由于获得major.minor.release 格式,我正在尝试更改svn 修订号。 在我的配置中,svn 修订号每次提交都会增加一。 应该可以改了吧?
我正在研究如何使用 perl 来做到这一点,但如果你能建议一种 ace in the hole 解决方案,那对我来说将是黄金。
【问题讨论】:
不可能,你可能想做的是tag the specific revisions对应你的版本
【讨论】:
不要混合 版本控制号和版本号。只是不要这样滥用它。
当你将 RCS 从 subversion 切换到 git 时,你被搞砸了。 说真的,手动进行版本编号。 最多包含 subversion 修订号作为后缀构建指示符。
将发布版本号与 RCS 系统内部编号联系起来有什么好处?这些数字本质上只是系统的唯一 ID,但不是软件版本号。它们是提交编号,所以不要搞砸了。
【讨论】:
不,您不能更改 SVN 修订号,也不应该。
在幕后,SVN 会在您每次签入某些内容时制作整个存储库树的(惰性)副本。此副本由 ID 存储和访问,该 ID 称为修订号。它是存储库内部的一条信息,除了需要它来引用特定修订版之外,此 ID 的值应该与您无关。
您的软件交付给客户的版本号是由从存储库外部决定的 并且独立于签入到存储库的数量。 (您的客户并不关心您是否需要一百次签入来实现闪亮的新功能并消除那些令人讨厌的错误,或者一千次。)
作为开发人员,您的任务是在内部修订号和一些外部使用的版本号之间建立联系。这是通过标记(或分支,如果您计划从该主要版本中获得多个次要版本)来完成的。如果您想将某个特定修订版发布为 1.0 版,只需将此修订版复制到 tags/releases/1.0 之类的位置即可。 (请注意,这甚至允许您在一个版本中混合来自不同修订版本的源文件。只需有选择地将它们更新到特定修订版本,并且当您拥有想要标记该混合工作副本的状态时。)
SVN book 解释了这一切。帮自己一个忙,花几个小时通读一遍。这将在几天内得到回报。
【讨论】: