16

是否有历史原因使用句点而不是软件版本的任何其他分隔符?

我们的一个产品以前是 3.5 版,现在是 3.08 版——我敢肯定这是管理层的说法,一旦我们达到 3.10,放一个前导零可以让我们的客户不那么困惑。但作为一名软件开发人员,3.08 版对我来说看起来很奇怪。

如果我们不使用句点,版本 3:9 和 3:10 或 3-9 到 3-10 之间的差异会更加明显,因为它不会被读取为十进制数。此外,对于通常不熟悉软件版本控制的人来说,十进制数字似乎暗示 3.5 版距离下一个主要版本还有一半,而实际上我们无法对下一个主要版本之前的次要版本数量做出任何假设.

我知道现在我们通常使用句点作为约定,因为这是其他人都在做的事情——但是首先使用句点有理由吗?

4

8 回答 8

11

正如 DVK 所建议的那样,它几乎肯定源自SCCS,即原始的源代码控制系统。它使用的数字是 1.1, 1.2, ... 3.14, 3.15, ... 等等。

如果您想要更深层次的原因,您可能想问Marc Rochkind(创建 SCCS)。

编辑:好的,我自己给 Marc Rochkind 发了电子邮件,他说:

我认为这是从十进制数的类比开始的。版本 1、版本 2、版本 2.1 等等等等。然后添加更多的小数,这根本没有数学意义,但无论如何它只是一个字符串。

我不认为它起源于 SCCS。我认为这个方案早在 1972 年我第一次开始研究 SCCS 时就已经在使用,所以对于贝尔实验室的我们来说,这将是正常的事情。因此,它是“SCCS 用作其自身灵感的早期约定”。

...所以,我想知道如果 ALGOL 被编码为使用欧洲公约作为小数点,我们是否都将使用逗号作为我们的版本分隔符......

于 2009-09-02T05:58:35.040 回答
6

我不确定确切的原因,但一个可能的影响可能是代码存储库系统(例如 RCS/CVS)强加的版本控制——当然,这些系统发现数字比字符串更容易操作。

此外,使用十进制表示法的人可能在大于九次颠覆或次颠覆时都没有考虑过。除了这两个限制之外,十进制表示法确实可以作为软件版本状态的直观近似值。

于 2009-08-26T16:32:08.917 回答
6

我的猜测是它与早期的操作系统命名约定有关。当您有第二个版本时,您要做的第一件事是标记特定于该版本的所有文件和目录。

查看维基百科,“/”、“\”、“:”甚至“%”和“#”都对文件的位置有影响,因此作为文件名会有问题,尤其是在相当原始的操作系统中。

“-“, “_“ 和 ”。” 都经常用于文件名,因此它们可用于版本命名。

但是“-”在日期格式中使用了很长时间。

我实际上认为十进制模型并不是那么糟糕。虽然它确实表明 1.5 介于 1 和 2 之间——它也表明 1.1 版本与 1.0 版本相比没有 2.0 版本那么大的变化。并且它可以指出基线的明显变化。

于 2009-09-02T14:40:04.347 回答
5

我发现的唯一有趣的事情是关于 Software verisonning 的维基百科条目的这一部分,其中指出(引用)

打印时,序列可以用字符分隔。字符的选择及其用法因方案而异。以下列表显示了同一版本的分离方案的假设示例(第十三个三级修订版到第四个二级修订版到第二个一级修订版):

  • 一个方案可以在所有序列之间使用相同的字符:2.4.13、2/4/13、2-4-13
  • 分离哪些序列的方案选择可能不一致,分离一些序列但不分离其他序列:2.413
  • 方案的字符选择可能在同一标识符内不一致:2.4_13

当句点用于分隔序列时,它不代表小数点,并且序列不具有位置意义。例如,标识符 2.5 不是“两个半”或“版本三的一半”,它是第二个一级修订的第五个二级修订,并且不合适[需要引用]除非有 2.1、2.2、2.3 和 2.4。

于 2009-08-26T16:27:05.133 回答
2

您也可能想知道为什么小数点是用于终止句子的符号。08 多么令人困惑!

于 2009-08-26T16:28:34.710 回答
1

它不是小数点。它只是一个版本分隔符。欧洲大陆的人们仍然使用句号进行版本分隔。

于 2009-08-26T16:24:39.790 回答
0

这不是小数点,只是一个分隔符。他们为什么使用这个符号是未知的,并且作为一个编程问题没有什么兴趣......

但太多人认为这是小数点,导致混淆。但是 Firefox 3.0.13 或任何 1.9.0.5213 呢?主要编号、次要编号、修订号和内部版本号并不少见(至少在 Microsoft 世界中......)。

于 2009-08-26T16:38:10.993 回答
0

I think it's easier to just come up with a new number than a new name. Even Microsoft has returned to their regular numbering scheme again, going from Windows 2, 3, 3.1, 3.11 to 95, 98, ME, 2000, XP, Vista and now back to 7. Besides, using letter codes might result in unwanted associations. E.g. we have Windows CE, ME and NT which are three different Windows system that were all operational at about the same moment. (Just put the letters together.) At least, with numbers you don't have the risk of accidently spelling out some strange words. (Then again, Borland/Codegear/Embarcadero did skip version 13 of the Delphi RAD studio.) People also tend to avoid version numbers like 6.66 or 6.6.6 for some devilish reasons...

于 2009-09-04T22:09:40.183 回答