版本管理器的发展史
以前本站发布过编程语言进化,Windows的达尔文进化图,今天在网上看到版本管理器的进化图,转过来,源文链接如下:
http://codicesoftware.blogspot.com/2010/11/version-control-timeline.html (墙)
这张图上分成了四个时期:
史前时期:1982年的RCS。现在你可能还能在Unix的发布包中找到它。
古典时期:1990年的CVS(经典的SCM管理器,可惜不能track目录和文件名的改变,今天这个东西已经过时了),1985年的PVCS,1992年的clearcase(价格贵,功能复杂,当然,今天也有很多公司在用),微软的VSS(Welcome to Hell),90年代中期的Perforce(P4,这个工具今天都还在被广泛地使用,尤其是那些中等大小却有着大量开发团队的公司,现在是Google内部最大的代码管理器)。
中世纪时期:SVN(Linus很不喜欢SVN,2006年引入了Git),AccuRev(强力支持branch和merge,其扮演了一个很重要角色帮助社区脱离clearcase和CVS),
文艺复兴时期:BitKeeper——Sun的内部管理工具,Linux的内核代码2002年也用这个工具,其实,很多开源工程都在用这个工具,2005年这个工具的东家BitMover对大家对BitKeeper逆向工程很不满,于是停止支持开源,于是出现了Git。
Git的第一个版本是Linux之父Linus Torvalds亲手操刀设计和实现的(据说只用了一个周末),Linus不仅仅给出一个原始设计(简单的、干净的、天才的),同时,他也用自己那独一无二的风格催生了这个项目(请参看: http://codicesoftware.blogspot.com/2007/05/linus-torvalds-on-git-and-scm.html 还是被墙)。
在Linus介绍Git的著名的演讲中,他强烈地批评(好吧,应该算是侮辱)了CVS,SVN,和Perforce:“Subversion是史上最毫无意义的项目,从项目开始就是这样了”,“如果你喜欢CVS,那么你现在应该在某个精神病研究中心或是别的地方”,“别在用Preforce了,它是十分糟糕和可悲的,这绝对绝对是真的”。无论是反对还是喜欢,Linus的确是改变了历史——中世纪已经过去了,现在的世界由分布式系统主宰,以及消除branch和merge的恐惧。
Git 基于 DAG 结构 (Directed Acyclic Graph),其运行起来相当的快。在Git发布后的来年,世界上所有的大型的开源项目全部从Subversion迁移到了Git上,www.github.com真是很大,这可能是这具星球上最强大最牛最酷的SCM系统了。Git可能并不是最简单的,但它一定会是未来十年的主流。(有空读读这本书——Git Internals)
Mercurial (Hg) 第一次出现在2005年4月,也是因为BitKeeper不免费了。Hg可以和Git在一起使用,见:http://mercurial.selenic.com/wiki/HgGit。但是Hg和Git在设计上不一样,他们对提交/变更的概念是一样的,只不过Git用tree来实现,而Hg则是用扁平的文件和目录来实现(revlog),设计细节可参看:http://mercurial.selenic.com/wiki/Design和 http://mercurial.selenic.com/wiki/DeveloperInfo。
Darcs (Darcs Advanced Revision Control System)是另一个让你摆脱Subversion和CVS的工具,2002年开始,今年是2.5版。它的优势是性能,以及他与众不同的历史版本管理——管理patches而不是snapshot(提交/修改),当然,这样一来,历史改变看上去很不好懂。
Bazaar (bzr) 是另一个开源的 DVCS,它试图给SCM的世界里带来一些新的东西。其由Canonical开发(Ubuntu的那个公司),在2008年成为GNU。
Plastic在2006年出现,强力地支持branch和merge,其还提供了强大的图示,包括3D的版本树,Plastic主要是为了让中等开发团队使用,介于大型的团队(ClearCase)和小型的团队(Subversion)之间。
Team Foundation Server (TFS),微软的新一代SCM工具,主要是为了VSS的失败负责,但是他还不是版本管理上还是很强,只不过,他集成了一大堆各种各样的工具,比如:issue tracking,test management等。
(全文完)
(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)
《版本管理器的发展史》的相关评论
Linus就是神!
版本管理具体的不清楚,单从使用的感受看,用的是archlinux,aur里有的package是git的,有的是svn的(尤其是googlecode上的那些项目),git管理的速度快,简单清晰,svn管理的慢得很(即使是googlecode的),而且满屏给我输出同步内容,毫无意义。
还在用VSS的情以何堪
Linus大人,您为什么那么销魂~~~
还在用SVN的路过。虽然对Git很有兴趣,但是他没有权限控制,这在商业公司是不允许的吧。
分布式的意义。。
难以理解居然没有提到SCCS
http://en.wikipedia.org/wiki/Revision_Control_System
RCS was first released in 1982[1] by Walter F. Tichy while he was at Purdue University as a free and more evolved alternative to the then-popular Source Code Control System (SCCS).
http://en.wikipedia.org/wiki/Source_Code_Control_System
Source Code Control System (SCCS) was an early revision control system, geared toward program source code and other text files. It was originally developed at Bell Labs in 1972 by Marc J. Rochkind for an IBM System/370 computer running OS/MVT. It was later rewritten for UNIX, then running on a PDP-11 and released with the Programmer’s Workbench (PWB) edition of that operating system.
Subsequently, SCCS was included in AT&T’s commercial System III and System V distributions. It was not licensed with 32V, the ancestor to Berkeley Unix.[1] The SCCS command set is now part of the Single UNIX Specification.
SCCS was the dominant version control system for Unix until the release of the Revision Control System. Today, SCCS is generally considered obsolete. However, its file format is still used internally by a few other revision control programs, including BitKeeper and TeamWare. Sablime[1]
also allows the use of SCCS files. The SCCS file format uses a storage technique called interleaved deltas (or the weave
). This storage technique is now considered by many revision control system developers[who?] as key to some advanced merging techniques, such as the “Precise Codeville” (“pcdv”) merge.
把Linus造成神并进行崇拜对我们的学习并没有帮助。
Git的第一个版本是Linux之父Linus Torvalds亲手操刀设计和实现的,但Linus不是凭空设计出来的,他是站在巨人的肩膀上,很大程度上借鉴了BitKeeper和Monotone的设计。Git的开发从2005年4月3日开始,2005年4月7日完成大约1300行代码,实现基本功能并selfhosting。http://marc.info/?l=git&m=117254154130732
“无论是反对还是喜欢,Linus的确是改变了历史——中世纪已经过去了,现在的世界由分布式系统主宰,以及消除branch和merge的恐惧。” 没有Linus,历史依然向前进,分布式系统依然会占上风。Bazaar在2005年3月立项,Mecurial在2005年4月19日也已经完成第一个版本。
“Git 基于 DAG 结构 (Directed Acyclic Graph),其运行起来相当的快。”
Bazaar和Mecurial也都基于DAG结构。另外DAG有中文名称,叫有向无环图。
“在Git发布后的来年,世界上所有的大型的开源项目全部从Subversion迁移到了Git上,www.github.com真是很大,这可能是这具星球上最强大最牛最酷的SCM系统了。Git可能并不是最简单的,但它一定会是未来十年的主流。”
兄弟,你在说些什么?世界上所有的大型的开源项目全部从Subversion迁移到了Git上?www.github.com真是很大?最强大最牛最酷的SCM系统?
我承认由于Linus个人因素的影响,Linux kernel和不少Linux下的开源项目都使用了Git,但请不要忽视别的DVCS的存在。 Ubuntu在哪里?Octave在哪里?Emacs在哪里?Vim在哪里?
另外请注意:www.github.com只是ruby搭起来的一个使用Git版本控制的商业网站,它属于GitHub公司,与Git和Linus没有内在的联系。而我还真没看见过有多少大型开源项目把代码托管到了github上。
同在用糟糕的VSS的飘过…我宁愿用共享文件夹管理版本
嗨,
我的塑料供应链管理的创造者,你怎么看待我们的系统认为一个人?
此致
Hi pablo,
wow, what brings you here? It is astonished to me to see the original author comes out and type Chinese here :D
But could you please use English next time? because google translator is not as good as it should be.
I wish Hao Chen could translate your whole article, with detailed introduction about those DVCSs other than git, especially the Plastic SCM. But what I saw here is only the emphasizing of what Linus did for the whole history.
I havn’t ever used the Plastic SCM yet, but I will have a try next time.
best regards
Hi Mensch88 & Pablo,
i am sorry i didn’t translate the whole article, and did not introduce DVCS, because I don’t want this technical blog so bookish, academic & boring. Actually, many non-technical people think technical person or technical articles are so dry, priggish, unsophisticated & boring, it’s true. so, I set up this blog to try to make the Computer Technology more fun & more interests. That’s why i only pick up the interesting & funny things instead of precise technique or math here. Thanks for understanding.
And hope you can join me share your article, your viewpoint, your information to everyone. this is not my personal blog, it’s always opening for anyone.
Regards,
Hao
SVN的飘过……
@pablo
Hi Pablo, thanks so much to leave your message here. I can guess what your meaning probably is – “hi, I am the creator of Plastic SCM, how do you think about our system? “. I have to admit i know less about the Plastic SCM, but with your message, I feel I should really look at this. Thanks for your message. and this is the purpose of this blog – everyone can learn each other.
@Mensch88 Hi! Yes, now I’ll try in English, I used google as you mentioned and I’m afraid the results were not good! ;)
Guys, I’d love to see posts translated to Chinese, so if you need me to send you the original material, the visio files, of whatever you need, please send me an email to psantosl at codicesoftware.com. I’ll be really happy to help!
And of course, give a try to Plastic!
被公司逼着还在用CVS的神经病
@无缺
怎么能说没有权限控制呢?你招的人你不信任么?
再说也不是没有权限控制啊,我把代码push给你,接不接受你可是有完全权力的。
同vss 情何以堪
还是SVN时代啊~
CVS 精典啊
大家晓得MKS吗~我公司在用的
These are actually enormous ideas in concerning blogging. You have touched some good factors here. Any way keep up wrinting.
@Mensch88
现在你肯定不这么说了,github的影响力已经大到超出你的预期了