源代码控制是什么时候发明的?


20

我知道许多版本控制系统:CVS,SVN,TFS等...

我已经在Google上搜索了第一个“版本控制/版本控制系统”,并看到了各种矛盾的答案。

源代码控制是什么时候发明的?谁发明的?那叫什么



18
它实际上是多次发明的,但是他们一直在丢失源代码。
Reactgular

4
这取决于您如何定义“源代码控制”,但是IBM的IEBUPDTE可以追溯到1962年,并且可以说是最早的VCS。
罗斯·帕特森

2
如果版本控制文件系统可以与版本控制结合使用,则可以追溯到1960年代。
mouviciel 2013年

@RossPatterson,该评论确实需要回答。
John R. Strohm

Answers:


14

这是视频形式的主要参与者的相当不错的时间表(无声音)。

这表明SCCS排名第一,大约有9年的时间。

http://i.stack.imgur.com/wcAWD.png

但是,正如本博客和所得到的评论所证明的那样,仍然有很多缺失。


7
关于SCCS原始论文没有提到其他系统,并且似乎表明它必须提出术语本身。仅从该来源来看,就好像在1972/73年之前没有版本控制系统。
马丁·皮特斯

1
命名源代码控制系统“源代码控制系统”确实表明它是某些东西的第一个实例,以后将成为软件类别。
Ingo 2013年

@MartijnPieters Rochkind在论文末尾承认Brown的CLEAR,简单地说,他是在OS / MVT上构建SCCS,他可能还没有意识到IEBUPDTE。
罗斯·帕特森

@RossPatterson:CLEAR和IEBUPDTE都不是源代码控制系统。CLEAR以增量概念而著称,它在论文中明确指出没有其他相似之处。
马丁·彼得斯

3

1981年,我在德克萨斯州奥斯汀市的Charter Information公司担任暑期工作。他们以前是马萨诸塞州沃本市的商业信息公司。他们运行了已经现场升级到Sigma 7的Xerox Sigma6。他们使用称为SPUD(源程序更新)的东西进行源代码控制。它是基于磁带的。

我例行地安装了“两百周年SPUD磁带”,并在Mod平台上为该磁带上的一段代码工作。因为它写于1976年,所以被称为“百年纪念SPUD磁带”。它们的磁带比较旧,这表明SPUD可以追溯到1976年。

当我在UT奥斯汀分校学习的时候(1973年至1981年),我遇到了MODIFY和UPDATE的问题,这是来自Control Data Corporation的两个CDC 6600及更高版本大型机的源代码控制程序。我不知道它们什么时候首次出现,但是我怀疑它们是在6600以后不久才问世的,6600于1960年代末问世。

我怀疑IBM在其他方面做得还不错,但是我对IBM大型机的历史一无所知,我很喜欢这种方式。


就我所知,CDC MODIFY和UPDATE命令是用于应用软件更新的实用程序,而不是用于管理您自己的软件中的更改的实用程序。请参阅apps.dtic.mil/dtic/tr/fulltext/u2/a208003.pdf(该页上的实用程序在第52页(PDF中的61)上进行了描述)和computinghistory.org.uk/downloads/39256(在本文档中描述了该实用程序)。#4(PDF#16)上的软件发布材料均为UPDATE格式。
马丁·彼得斯

我相信Xerox SPUDS(源程序更新磁盘系统)是一个类似的软件包。
马丁·皮特斯

2

最初为IBM OS / 360系统创建的IEBUPDTE程序可以追溯到1962年,比SCCS早10年。其目的是将一组更改应用于一组输入源程序,从而创建一组修改后的源程序。所有源代码要么作为80列打孔卡的“卡片组”进行管理,要么作为类似于它们的文件进行管理。这些源程序平台在每行或每张卡上的固定列中都有“序列号”(COBOL在1-6列中将其指定为左侧,几乎所有其他条件都在73-80列中将其假定为右侧)。序列号必须逐行增加,但是大多数源代码都增加了10s,100s或1000s,以便在两行之间的整数数空间中留出空间以便以后插入。

典型的IEBUPDTE控制面板可能如下所示:

./ CHANGE NAME=PROG001
         PROGRAM XYZZY                                                  00005000
./ DELETE SEQ1=9000,SEQ2=15000
         DO I=1,10                                                      00026000
./ CHANGE NAME=PROG002
         J=256                                                          00092000
./ ENDUP

它将修改两个源文件“ PROG001”和“ PROG002”,替换行号“ 5000”(通常是第五行,遵循“按千个数字”的做法),并删除PROG001中的9000至15000行,并替换PROG002中的92000行。

最简单的说,这就是源代码管理的定义。Unix人士会认识到补丁程序的作用,但是使用显式编号而不是隐式编号。通常将控制平台集按顺序应用于输入程序,并将这些集存储为内聚磁盘文件(分区数据集),这与CVSRCS存储在其,v文件中的更改历史非常相似。IBM会经常以大型控制平台的形式提供称为程序临时修订(PTF)的代码补丁,这些补丁将文件作为单个相关变更集的一部分进行修改,SubversionGit用户会发现它们很熟悉。


IEBUDTE不是软件更新系统吗?它与补丁类似,因此充其量只是版本控制系统的组成部分。据我所知,没有随时间变化的图表。
马丁·彼得斯

是啊,IEBUPDTE是类似patch
罗斯·帕特森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.