我知道许多版本控制系统:CVS,SVN,TFS等...
我已经在Google上搜索了第一个“版本控制/版本控制系统”,并看到了各种矛盾的答案。
源代码控制是什么时候发明的?谁发明的?那叫什么
我知道许多版本控制系统:CVS,SVN,TFS等...
我已经在Google上搜索了第一个“版本控制/版本控制系统”,并看到了各种矛盾的答案。
源代码控制是什么时候发明的?谁发明的?那叫什么
Answers:
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大型机的历史一无所知,我很喜欢这种方式。
最初为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人士会认识到补丁程序的作用,但是使用显式编号而不是隐式编号。通常将控制平台集按顺序应用于输入程序,并将这些集存储为内聚磁盘文件(分区数据集),这与CVS和RCS存储在其,v
文件中的更改历史非常相似。IBM会经常以大型控制平台的形式提供称为程序临时修订(PTF)的代码补丁,这些补丁将文件作为单个相关变更集的一部分进行修改,Subversion和Git用户会发现它们很熟悉。
IEBUPDTE
是类似patch
。