一、起源与雏形
版本控制工具的最开始雏形:最原始的版本控制是纯手工的版本控制:修改文件,保存文件副本;保存副本命名随意,版本难辨新旧,不能辨别每一版的修改内容。
在最初的版本控制软件出现之前,其实已经有了比较好用的源码比较与打补丁的工具:diff和patch。Linus Torvalds(Linux之父)也对这两个工具偏爱有加。在1991-2002年之间,即使CVS出现之后,Linus一直使用diff和patch管理着Linux的代码。diff与patch是用于源码版本控制中的两个最基本的概念。CVS(Concurrent Versions System):协作版本系统。
- diff用来比较两个文件或者目录之间的差异
- patch是diff的反向操作我们把上述差异结果保存到文件中,例如:diff.txt中,那么这个diff.txt就可以用来从left.c推算出right.c的内容,反之亦可
二、历史节点
- 版本控制的雏形:diff & patch
- 最早期的本地版本控制工具:RCS(Revision Control System)RCS作为非常古老的版本工具,远远在SVN和已经退役的CVS之前,它的古老程度应该比Web开发的ASP前代的CGI还要更久远。如果想对版本管理实现方式进行深入研究的话,研究RCS是一种最为简单的入手方式。RCS采用把diff的集合,采用RCS自己的格式保存到磁盘中(可以通过diff -n left.c right.c产生RCS格式的diff内容),能通过这些diff集合,重新回到文件修改的任何历史中的点
- 集中式版本控制工具:CVS & SVN
- 分布式版本控制工具:Git
- 未完待续...