修订控制系统(Revision Control System)是一种用软件实现自动存储、检索、日志记录、识别、和合并修订的系统。
简介修订控制系统(Revision Control System,缩写RCS)是一款早期的版本控制系统(VCS)。它可以被认为是一组允许多个用户开发和维护程序代码或文档的UNIX命令。使用RCS后,用户可以修订文档制成自己的版本,提交更改,然后汇总起来。RCS最初是为程序所开发,但它对于经常修改的文本或配置文件也很有用。1
历史开发RCS最早于1982年由普渡大学的Walter F. Tichy发布。它是当时流行的源代码控制系统(SCCS)的一个替代工具;SCCS基本上是史上首个版本控制工具,由早期Unix开发人员在1972年开发。RCS目前由GNU Project维护。1
法律和许可在最初(随4.3BSD分发的第三版),其许可证为未经Walter Tichy书面许可,禁止再次分发:
Copyright (C) 1982 by Walter F. Tichy [...] All rights reserved. No part of this software may be sold or distributed in any form or by any means without the prior written permission of the author.
某些RCS版本有一个READ_ME文件阐明了进一步限制,例如版本4.3BSD-Reno。约1989年,RCS许可证修改为类似于现代的BSD许可证,正如源代码中所述。
Redistribution and use in source and binary forms are permitted provided that the above copyright notice and this paragraph are duplicated in all such forms and that any documentation, advertising materials, and other materials related to such distribution and use acknowledge that the software was developed by Walter Tichy.
1990年7月26日发布的RCS 4.3由自由软件基金会分发于GPL条款。1
行为操作方式RCS仅对单个文件进行操作。它无法处理整个项目,因此它不支持影响多个文件的原子提交。虽然它为单个文件提供分支,但版本语法很麻烦。而不是使用分支,不少球队只需使用内置的锁定机构和工作在一个单一的头分支。2
用法RCS围绕“修订组”或已通过“co”(checkout)和“ci”(签入)命令签入的文件集的使用。默认情况下,已删除签入文件并替换为“,”v“文件(因此签入时foo.rb变为foo.rb,v),然后可以由有权访问修订组的任何人签出。RCS文件(同样,扩展名为“,v”的文件)反映了主文件的第一行添加了元数据。签入后,RCS将修订存储在可以遵循的树结构中,以便用户可以根据需要将文件还原为以前的表单。2
优点结构简单,易于使用
修订版本不依赖于中央存储库2
缺点从某种意义上说,安全性很小,用户可以编辑版本历史记录。
一次只能有一个用户处理文件。2
相关工具和后继者RCS - 第一代工具RCS仍然在一些项目中使用,但它的继续使用远不及像Git这样的现代工具。
SCCS(1972年发布)和DSEE(被认为是Atria ClearCase的前身)是另外两个相对着名的突破性VCS软件工具。这些工具通常被认为是第一代VCS作为自动化软件工具。2
第二代在第一代VCS工具之后,后来的CVS,Subversion和SVK可以被认为是第二代VCS,所有这些都具有本地集中的存储库。具体而言,CVS(并发版本系统)是在RCS结构之上开发的,为更大的组提高了工具的可扩展性,后来将PRCS扩展为更简单的类似CVS的工具。
如今,可能会考虑Subversion作为最流行和广泛,从我们这一代已经充满CVS的重要弱点使用VCS工具。后来SVK以远程贡献功能为目标开发,但其设计的基础仍然与其前辈非常相似。2
第三代随着互联网开辟了通向世界的道路,第三代工具出现了,提供了分散式版本控制系统,允许用户在多台机器上保留其版本,同时为同一项目做出贡献。在这一代中,有Git,Arch工具(Bazaar,ArX),BitKeeper,Mercurial和Monotone以及许多其他作为第三代VCS软件工具。2
本词条内容贡献者为:
王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所