为什么版本号通常是“2.1.3”而不是 2.13?
似乎后者更有意义,因为您可以在其上运行数字比较器。
出于同样的原因,当版本号被编码为整数时(例如 Python 的sys.hexversion),它会用零填充:
您经常必须超过 10 个。
许多项目采用major.minor.bugfix方案(例如语义版本控制)。也许版本 2.1.9 有一个需要修补的安全漏洞;您需要将其称为 2.1.10(因为将其称为 2.2.0 意味着新功能和可能的轻微不兼容性)。也许版本 3 完全改变了语法,因此您希望继续向版本 2 添加功能。
也许您的项目发布如此频繁,以至于每个主要版本都有超过 100 个次要/错误修复版本(kernel.org 列出了 2.6.34.14 和 3.0.60)。
最后,它是一个字符串。当然,您可以将其解析为双精度以进行比较,但许多语言/库支持“数字”字符串比较(因此“文档 9”位于“文档 10”之前);Apache 的mod_autoindex甚至称其为“VersionSort”。
三级版本控制方案通常反映major.minor.build(或major.minor.revision)。
这三个级别允许级别之间的变化的重要性降低。具有major 1、minor 13 和major 1、minor 12 的软件之间的差异应该显着大于major 1、minor 1、build 3 和major 1、minor 1、build 2 之间的差异。
您可以在 . 并单独比较每个级别。
即使只有一个小数点,也不能在其上使用数字比较器。
这是示例。
考虑版本 1.13 和 1.2,显然 1.13 是更高版本。但是 1.2 > 1.13。