Mar*_*off 15 versioning history notation
是否存在使用句点而不是软件版本的任何其他分隔符的历史原因?
我们的产品之一是以前的3.5版本,现在它是3.08 - 我确信这是管理层说,一旦我们达到3.10,那么设置一个领先的零将使我们的客户更容易混淆.但作为软件开发人员,版本3.08对我来说很奇怪.
如果我们没有使用句点,版本3:9和3:10或3-9到3-10之间的差异会更明显,因为它不会被读作十进制数.此外,对于通常不熟悉软件版本控制的人来说,十进制数似乎意味着版本3.5已经到了下一个主要版本的一半,而实际上我们无法对下一个主要版本的次要版本数做出任何假设.
我知道现在我们通常使用句号作为约定,因为这是其他人正在做的事情 - 但是有没有理由在第一时间使用句号?
Zac*_*son 11
正如DVK所建议的那样,它几乎肯定来自最初的源代码控制系统SCCS.它使用的数字是1.1,1.2,...... 3.14,3.15,......等.
如果你想要更深层次的理由,你可能想问Marc Rochkind(创建SCCS).
编辑:好的,我自己给Marc Rochkind发了电子邮件,他说:
我认为这是从与十进制数字类比开始的.版本1,版本2,版本2.1等等.然后添加更多小数,这根本没有数学意义,但它仍然只是一个字符串.
我不认为它起源于SCCS.我认为这个方案在1972年我第一次开始SCCS工作时就已经投入使用了,所以对我们贝尔实验室来说,这是正常的事情.所以它是"SCCS用作自己灵感的早期惯例".
...所以,我想我已经编码使用欧洲公约作为小数点,如果我们都使用逗号代替我们的版本分隔符......
我不确定具体原因,但可能的一个影响可能是代码库系统(例如RCS/CVS)强加的版本控制 - 当然,这些版本比字符串更容易操作.
另外,任何想出使用十进制表示法的人可能都不会想到当时有超过九次的颠覆或子颠覆.除了这两个限制之外,十进制表示法确实可以作为软件版本状态的直观近似.
我的猜测是它与早期的操作系统命名约定有关.当您拥有第二个版本时,您要做的第一件事就是标记特定于该版本的任何文件和目录.
看维基百科,"/","\",":"甚至"%"和"#"都会对文件的位置产生影响,因此作为文件名会有问题,特别是在相当原始的操作系统中.
" - ","_"和"." 都经常在文件名中使用,因此它们可用于版本命名.
但是" - "已经在日期格式中使用了很长时间.
我实际上认为十进制模型并不是那么糟糕.虽然它确实表明1.5介于1和2之间 - 但它也表明1.1版本并没有像1.0版本那样大的改变.并且它可以指出基线的显着变化.
我找到的唯一有趣的事情是维基百科关于软件执行的条目的一部分,其中指出(引用):
打印时,序列可以用字符分隔.字符的选择及其用法因方案而异.以下列表显示了同一版本的分离方案的假设示例(第13个第三级修订版到第二个第一级修订版的第二个第二级修订版):
- 方案可以在所有序列之间使用相同的字符:2.4.13,2/4/13,2-4-13
- 分离哪些序列的方案选择可能不一致,分离一些序列而不分离其他序列:2.413
- 方案的字符选择可能在同一标识符内不一致:2.4_13
当使用句点来分隔序列时,它不表示小数点,并且序列没有位置重要性.例如,2.5的标识符不是"两个半"或"版本三的一半",它是第二个一级修订的第五个二级修订,并不适合[引证需要]除非有2.1,2.2,2.3和2.4.