是否有任何指南或标准最佳做法,如何在业余时间对您开发的软件进行版本控制,但仍然会被某些人使用?我认为有必要对此类软件进行版本控制,以使您了解所讨论的版本(例如,错误修复,支持等)。
但是我从哪里开始版本控制?0.0.0?或0.0?然后如何增加数字?主要发布。较小更改?提交版本控制系统的任何版本都不应该是另一个版本吗?还是仅用于以生产方式使用的版本?
是否有任何指南或标准最佳做法,如何在业余时间对您开发的软件进行版本控制,但仍然会被某些人使用?我认为有必要对此类软件进行版本控制,以使您了解所讨论的版本(例如,错误修复,支持等)。
但是我从哪里开始版本控制?0.0.0?或0.0?然后如何增加数字?主要发布。较小更改?提交版本控制系统的任何版本都不应该是另一个版本吗?还是仅用于以生产方式使用的版本?
Answers:
您应该从版本1开始,除非您知道“发行”的第一个版本在某种程度上是不完整的。
至于如何增加版本,这取决于您,但是可以使用主要,次要的内部编号作为指导。
不必将提交给源代码管理的每个版本都作为另一个版本-确实很快会有一个非常大的版本号。当您向外界发布新版本时,只需要增加版本号(以某种方式)即可。
因此,如果您进行了重大更改,请从版本1.0.0.0更改为版本2.0.0.0(例如,从WinForms更改为WPF)。如果进行较小的更改,请从1.0.0.0移至1.1.0.0(添加了对png文件的支持)。如果进行较小的更改,请从1.0.0.0更改为1.0.1.0(已修复了一些错误)。
如果您真的想获得详细信息,请使用最终编号作为内部版本号,该数字将在每次签入/提交时增加(但我认为这太过分了)。
我基本上遵循这种模式:
从0.1.0开始
准备好后,我在源存储库中分支代码,标记0.1.0并创建0.1.0分支,head / trunk变为0.2.0快照或类似内容
我仅向中继添加了新功能,但向分支修复了反向移植,并及时将其从0.1.1、0.1.2,...发布了。
当产品被认为功能完整且没有重大缺陷时,我声明版本1.0.0
从那时起-每个人都可以决定何时增加主要版本...
我在我的应用程序中使用以下规则:
y
哪里:
例:
我们在这里使用abcd
该A.B.C
方法的另一个示例是Eclipse Bundle Versioning。Eclipse捆绑包具有第四部分:
在Eclipse中,版本号由四(4)段组成:3个整数和一个分别名为的字符串
major.minor.service.qualifier
。每个段都捕获不同的意图:
- 主要部分表示API损坏
- 次要部分表示“外部可见”更改
- 服务部分指示错误修复和开发流程的更改
- 限定词段表示特定的构建
您知道您可以随时查看其他人在做什么。开源软件倾向于允许访问其存储库。例如,您可以将SVN浏览器指向http://svn.doctrine-project.org,并查看实际项目使用的版本控制系统。
版本号,标签,就在那里。
我们遵循abc方法,例如:
如果应用程序发生了一些重大变化,则显示“ a”。就像我们将.NET 1.1应用程序升级到.NET 3.5
如果有一些小变化,例如任何新的CR或实施了增强功能,则显示“ b”。
如果代码中有一些缺陷修复,则显示'c'。
我从最低(非修补程序)段开始进行版本控制。我不会将此细分限制为10。除非您正在跟踪构建,否则只需确定何时要应用增量。如果您有质量检查阶段,则可能是在最低部分上增加了一个增量,然后在下一个部分通过质量检查并被释放时向上增加了一个部分。将主要行为/ UI更改留在最上面的细分。
如果您像我一样,可以将其混合使用,以适应软件开发的进度。
我认为最受欢迎的模式是abc或abcd,尤其是如果您有质量保证/合规性的话。我在版本中经常遇到一些问题,因此放弃了主流版本。
我不跟踪构建,因此除非涉及修补程序,否则我喜欢使用abc模式。当我必须应用修补程序时,我将参数d用作带时间的日期。我将时间参数设为d,是因为在一天中实际发生生产爆炸时,总会有数个潜力。当我为生产修订而分歧时,我仅应用d段(YYYYMMDDHHNN)。
我个人不会反对va.b revc的软件方案,其中c是YYYYMMDDHHMM或YYYYMMDD。
所有这些。如果您只能使用某个工具来配置和运行该工具,则可以避免麻烦,不必整理版本管理的观点,而您只能说“使用该工具”……因为开发过程中的每个人通常都非常合规。