版本控制如何在80年代和90年代的当今微型计算机上工作?


31

我很好奇,程序员团队通常是如何在80年代和90年代初期管理软件开发的。是将所有源代码简单地存储在每个人都在使用的计算机上,还是将源代码通过软盘传递并手动复制并手动合并,还是像我们那样通过网络(例如CVS)实际使用版本控制系统?现在?还是正在使用离线CVS之类的东西?

如今,每个人都依赖于源代码管理。但是在80年代,计算机网络并不是那么容易设置,并且诸如最佳实践之类的东西仍在研究中……

我确实知道在70年代和60年代编程非常不同,因此不需要版本控制。但是到了80年代和90年代,人们开始使用计算机编写代码,并且应用程序的大小和范围开始扩大,所以我想知道那时人们是如何管理所有这些的。

此外,这在平台之间有何不同?说Apple vs Commodore 64 vs Amiga vs MS-DOS vs Windows vs Atari

注意:我主要是在谈论当今微型计算机上的编程,而不是大型UNIX 计算机上的编程。


3
RCS最初于1982
。– 5gon12eder

1
但是有多少人使用它呢?RCS是AFAIK专用于Unix和类unix的计算机,它们不能在微型计算机上运行。
9a3eedi '16

2
我们有网络系统。只是还没有解决tcp / ip问题,还有其他一些问题,例如decnet。文件共享有几种协议。而且,尽管有些小型独立开发人员(而不是团队),团队也可以在微型计算机上进行开发,而只是使用正式控制来进行备份而不是版本。有些人可能会使用严格的手动备份来模拟版本控制。
Erik Eidt

2
我们非常小心地进行了此操作,主要是在湿软件中进行了,因为您提到的版本控制并不存在您所认为的版本控制。
Blrfl

2
以我为例,在1980年代初期,我们在小型计算机上使用了打孔卡。有时,我们会将源代码甲板保存在打孔卡文件柜中。
吉尔伯特·勒·布兰科

Answers:


22

首先,当微型计算机首次出现时,该软件主要是在Unix或VMS系统上编写的,然后“交叉编译/组装”到目标系统上。这些计算机系统通常是多用户的,具有多个终端,并且具有诸如SCCS的源代码控制系统。

从1980年代中期开始,网络是微型计算机上的一种选择,通常将其作为“文件服务器”连接到Unix系统(也许仅使用RS232和Kermit来传输文件,而在Unix系统上使用SCCS)。

请参阅Eric Sink 的版本控制历史,以概述这些年来版本控制系统的变化。

我回想起在1980年代后期有关“ BYTE”中的源代码控制的文章,因此到那时它一定已经在“小型系统”中使用。

SourceSafe是在90年代中期在Dos,Windows等操作系统上运行时建立的。

该链接显示了一篇有关1994年开始在PC上运行的PVCS文章,文章的版本为6.2,因此显然已经存在了一段时间,维基百科说它的日期可以追溯到1985年


但是,直到1990年代末,大多数从事小型软件开发的程序员都使用带编号的软盘,将其替换为硬盘上的文件夹,从而每天复制源代码。

我记得曾在一个项目中将软件从Unit移植到Windows NT 3.5。那时,知道如何为Windows编程的程序员常常甚至没有听说过源代码控制。


该时间表来自codicesoftware博客文章,网站出售Plastic SCM,但是其他系统的历史概述似乎很合理,在保留RCS之前还有一些较旧的系统。

版本控制历史记录的时间表


1
当我开始我使用VSS ..我喜欢的工作欢迎到地狱评论。我记得我的团队负责人曾问过,是否应该为perforce进行改变...真是的!
draeron '16

@draeron,我发现如果您不希望能够合并分支,并且在稳定的文件服务器上,则VSS可以正常运行。我工作过的一家公司将其安装在内存芯片损坏的服务器上,因此不断损坏数据库!但是给我Perforce公司,而不是每周的任何一天....
伊恩·

“欢迎来到地狱”也可能适用于Clearcase ... 颤抖
Andrew Kennan

13

这可能不代表整个游戏行业,但在我们的小型游戏公司中效果很好。从未使用可能有其他要求的商业软件。

从80年代中期到90年代中期,我经常在文件名的末尾使用版本号,例如“ game.003”。那时,我正在用汇编器进行90%的编程,所有代码都在一个大文件中,可能包含一个或两个包含文件,随着情况的变化,我必须手动更新版本号。我只有确定要保留的稳定版本后,才增加数字。

最终,这可以轻松地扩展到大约3个人。在那之后,我们发展了团队,结果到处散布了一年左右的文件,直到我厌倦了试图追踪每个人的变化,并在1997-98年左右开始使用Perforce。


6

您必须在当时的通用基础结构中看到这一点。在80年代初期,IBM发布了“个人计算机”,您可以从字面上理解它。开发PC应用程序的最常见方法是一个人创建某些东西并试图出售它。因此,每个发行版本一张软盘可能很常见。您可以购买一些漂亮的彩色标签,并在上面写上产品名称和版本。对于当时的大多数成功产品,您都知道编写它的人的名字。

网络是作为附加组件引入的。客户端API被入侵DOS,服务器部分是一台专用计算机上的专用专有操作系统。通常很昂贵(不适合大众使用),基本上只提供文件和打印机共享。在PC领域,随着Windows for Workgroups和Windows NT的引入,情况开始发生变化。这带来了很多可能性。最终,网络被集成到程序员熟悉的环境中,Windows程序员可以编写可以通过网络相互通信的应用程序。NetWare作为主要网络操作系统的终结于此。

很快,出现了几个带有客户端和服务器组件的版本控制系统,您可以轻松地将其安装在任何机器组合上。带有用于IDE和客户端组件的插件,这些插件支持可在构建系统中集成的命令行选项。

网络腾飞并且无所不在的PC访问互联网之后,您将获得开源运动和基于Web的源代码控制系统。有趣的是,当引入PC时,这被视为从集中计算到分布式计算的大胆举措。但是中央与分布式的定义已经模糊。云是最终的分布,还是仅仅是拥有所有功能的新型巨型中央计算机,就像IBM大型机一样?


1
在Active Directory与win2k一起发布之前,Netware仍然占据主导地位。Netware仍然有很多事情做得很好,而AD不能没有严重的漏洞。
Wyatt Barnett

因此,您要说的是,当时拥有微型计算机的人没有使用源代码控制是因为他们不需要它?也就是说,通常只有一个人在自己的房子里编写程序,因此无需共享代码或进行合并?
9a3eedi '16

2
@ 9a3eedi:我正在画一幅典型的画。人们可能已经感觉到了这种需要,但是它并不存在,因此您只能靠自己的方式生活。合并你说?这听起来像一个很大的复杂程序。这样的野兽需要多少内存?将要合并的代码还剩下什么?我可以交换软盘,但是如果我的内存已满,我应该去哪里?直到人们有了“他们所需要的所有内存”(例如640K),才有可能实现。
马丁·马特

5

在90年代,我绝对使用软件进行版本控制。有SCCS,Apple的MPW具有内置的版本控制(Projector)。而且我想我是在1992年左右使用Projector的。在一家公司中,版本控制系统是一个大柜子,上面装有每个版本的软盘,每周一次。


SCCS在微型计算机上不起作用。而且无法正常工作,因为它依赖于纯粹针对Solaris(甚至不是通用Unix)文件系统的功能
gnat

1
@gnat-您是否在谈论相同的SCCS?我知道我在90年代中期在Next上使用了它,并相信在80年代后期我在各种非Solaris Unices上使用了它。链接的Wikipedia文章似乎同意,它不仅限于Solaris。
kdgregory 2016年

3
可以肯定的是,我是在1986年左右在运行Sys V的3B2-400上使用SCCS的。使用ISTR而不是RCS的原因是因为我们正在与顾问公司合作,该公司在基于Z8000的Xenix系统上使用了它,并且他有一些makefile假定使用它被使用了。
TMN

1
我肯定是在1984年在运行于Motorola 68000处理器的Microsoft Xenix上使用SCCS的。
查尔斯E.格兰特

2
的确,Linux在1980年代不支持SCCS。因此,在1880年代也缺少Linux对SCCS的支持。在1980年代Unix下,SCCS和其他程序(例如新闻阅读器)使用open(2)创建建议性锁定文件,如果所有用户都遵循相同的协议,则该文件将起作用。由于SCCS是创建咨询锁的一个,因此可以肯定会尊重它们。
msw 16年

1

当我回到学校时(在我看来应该是91左右),我的第一个夏季编程工作就是为我所在的小公司实现一个自动化的版本管理和备份系统。我们有3台PC连接到一个Netware服务器,而所有者最终已经厌倦了处理版本冲突和确定需要备份到软盘的内容,因此我们让开发人员在自己的PC上工作,而不是直接在服务器上存储的文件中工作。就像他们到目前为止一样,我编写了一个系统,将所有文件设置为只读,直到他们运行一个程序来检查是否有人在使用它们,然后将使用情况记录在中央btrieve数据库(具有简单查询的关系数据库)中api,而不是在netware服务器上运行的完整sql)。另一个程序签出了修改后的更改,并将其复制到服务器,

虽然该系统是为我工作的小型公司量身定制的,但我想许多类似的商店也有类似的流程。


1

根据个人经验:1985年,进行了MS-DOS网络开发PVCS,而且价格太昂贵。对于Apple和所有非MSDOS PC:没有。我从1987年开始使用T-lib(50美元)。Unix端口(SCCS)在1990年左右开始被过滤,而SourceSafe在1992年左右开始被过滤。

到1995年,如果您不使用VCS,那您就不那么认真了。


我将最后一句话更改为1985 :(但是后来我从事金融工作
user151019 '16

@mark:我非常怀疑这是否适用于PC开发。在Windows 3之前,企业大多忽略了
PC。– david.pfx

有很多DOS编程,到86岁时,我正在使用PVCS,而新的加入者具有Unix背景,但是正如所指出的,它是银行和金融业,因此我们可能会领先
一步

@mark:PVCS肯定在1985年就可以买到,但对于大多数人来说太贵了($ 000s)。只有那些从更大的系统中转移出来并且花钱燃烧的人才会使用它。
david.pfx

-1

在1993年至1995年期间,我在一家退休金经理那里工作,当时有15位开发人员在使用SPARCStation 20s和Sun IPX的SunOS中进行C / C ++开发。我们的代码库位于NFS挂载的目录中。最初,我们正在进行“ 复制文件夹版本控制”,但是在某个时候,我们转移到了SCCS,一些团队开始使用RCS

1995年,我移居到另一家公司,该公司有80多个开发人员在纽约,伦敦和香港从事C / C ++开发。我们将ClearCase与多站点加载项结合使用来管理开发环境。

ClearCase擅长在站点之间同步代码库,但是当时几乎需要一个专职管理员来保持运行。它的速度也慢得多,因为ClearCase会在虚拟文件系统中显示文件,并具有根据分支,时间和/或标签指定目录版本和通配文件名的配置。在病理情况下,可以指定每个单独的文件具有不同的版本。


1
该问题专门询问有关非Unix微型系统的信息,但您描述的系统(当时)仅在UNIX工作站上可用。
Jules
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.