- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
版本控制工具历史的10个里程碑
版本控制工具历史的10个里程碑作者: Francis??来源: 伯乐在线??发布时间: 2012-03-19 23:39??阅读: 1791 次??原文链接?? 全屏阅读 [收藏]?? 英文原文:Astonishments, ten, in the history of version control 引言:“如果你想要了解真正的历史,你需要回到在打孔卡上进行人工比对的年代。” —— Jim Rootham 在这个为鳕鱼编写传记都能够流行的年代,写一本记录程序员如何存储代码——他们最重要的劳动成果的书一点也不疯狂。 既然你和我都没有时间来阅读或编写这样的一本书,我们打算用这篇博客来进行探讨。 这是一个重要的问题。 (现在)版本控制产品非常普通而且很流行。 然而,它经历了几十年的不断创新。在这个领域里最聪明的人的努力下,代码管理变得非常简单而且有效。 每一步都是那么让人感到惊奇。 1. 源代码就是一个文本文件!(20世纪 60 年代) 现在看来,存储源代码和编写简单文档应该是一样的。但如果你简单读一下ASCII 的历史就会知道,即使达成这样的共识也来之不易。 2. 人们可以手动跟踪代码版本!(20世纪 60 年代) 在没有软件的年代,所有事情都要从源代码开始。“我工作的第一家公司有一个源码管理部门。当你把代码写好以后,将软盘交给源码管理部门一位漂亮女士。他们会及时更新函数库,用你的磁盘基于公司官方的代码构建产品交付给客户。” ——? Miles Duke 3. 你可以为单个文件保留多个版本!(1972,1978) 采用奇特的交错编织文件格式,SCCS 在版本控制领域称雄了 10 年之久。 记录单个文件的从一个版本到下一个之间的变化花费了几年的时间。“差异文件比较算法”是这个课题最近发表的一篇论文(1976)。 1982年,RCS 反向使用 diff 文件(描述算法原文)打败了 SCCS 成为继任者,并让评论家大跌眼镜:“一起出现的还有带有反向比较功能的 RCS,我认为它非常棒。” —— 无名氏 4. 每个人都可以签出自己的拷贝!(1982) 在那个时候,人们工作时需要登录一台中央大型机并通过它一起工作。采用符号链接,RCS 可以让每个人都工作在相同版本的代码上,而且每个人都有自己的工作拷贝。“有一个叫做 RCS 的文件,实际上它十一个链接到 RCS 仓库的符号链接,你可以与其他小组成员一起使用。”? —— 耶鲁大学RCS 使用介绍 5. 喔!你可以一次给多个文件进行版本控制!(1986) 令人吃惊的是,直到 CVS 出现之前,版本控制系统都只支持单个文件。当然,你可以使用通配符让 RCS 提交多个文件或者标记特定分支。但这些并不是版本控制系统的一部分。 CVS 默认会递归修改所有文件。突然之间,软件从单个目录或文件变成了文本文件的递归树。 虽然由于不具备“原子性”导致实现的产品不尽如人意(后来 Subversion 在 2000 年解决了这个问题),但是瑕不掩瑜。 6. 两个人可以同时编辑同一个文件,并将他们的工作合并在一起!(1986) 20 世纪 90 年代末,我在Creature Labs工作。我们从 Visual SourceSafe(商业软件,微软公司发布)转到 CVS(开源软件,由一些嘻皮士发布)。 坦率的讲,大家都怀疑 CVS 能否做到它宣称的那样:让多个人同时编辑同一个文件,并将他们的修改没有错误地合并到一起而不造成其他问题。 在我们开发Creatures 3?的时候,SourceSafe 的互斥锁成为了一个大问题。我们当时要添加垃圾搜集功能,这个功能会影响到几乎所有的代码。这个时候,我们的首席程序员不得不在周末签出每一个文件然后进行修改。 1986年的这篇论文记录下了这个奇迹。当 Dick Grune 和他的团队在荷兰开发一个编译器的时候,他们遇到了同样的问题,CVS 从此应运而生。 7. 可以在远程服务器上共享代码仓库!(1994) 大多数时候,人们只在一台机器上使用版本控制。在 1986 年,人们可以通过 RCS 的一些版本以及 CVS 提供的远程文件共享机制以拥有远程代码仓库。“假如 RCS 的某个版本可以通过远程服务器访问,那么开发人员就可以在代码仓库之外的机器上进行开发了。”? —— Dick Grune 然而,直到 1994 年 TCP/IP 协议的引入,这个想法才得以起步。“直到 Cygnus 软件的 Jim Blandy 和 Karl Fogel(这两位后来成为 Subversion 项目的主要开发者)为 CVS 发布了一些补丁,使得 CVS 客户端软件可以通过远程 TCP/IP 连接进行访问,CVS 才真正变得无处不在。 ”—— E
文档评论(0)