版本控制系统
纸质文档
在一张张纸上的文档,可以(多人)打草稿、画杠、画波浪线、画圈、打叉打勾、荧光笔涂色,空白处剪贴、写备注、标日期,这些操作方式能准确的记录、存储、检阅、交换和组合。
这样在纸上写文档时,可以便捷记录什么时候、被什么人、以什么样的原因、在文档什么位置、进行了什么样的操作,以推进文档的演进。
也就是说,在纸张上,能同时保存文档的操作痕迹和数据内容,不仅能个人编撰,也可以组团编纂。
电子文档
计算机上的电子文档,虽然编写、存储、传播方便,但操作方式缺少纸张上变动的可操作性、视觉的直观性、演进的可追溯性。
普通的电子文档,只能保存文档的数据内容,只能个人编撰。额外信息,依赖特定系统/工具、网络进行备注、注释。
有无版本控制差异
没有版本控制,需要将文件复制为副本,以便对比、回溯。
有了版本控制,能纸张化电子文档,即记录一个或若干文档内容变化,追溯各个变化之间的差异,进行版本修订。
无版本控制 | 有版本控制 |
---|---|
无论哪个行业,只要是在计算机上操作文档,就应该将这些文档纳入版本控制系统 (Version Control Systems) 进行管理。
版本控制与文档管理
版本控制,就是要记录和展示文档和文档内容在什么时候、是什么人、以什么样的原因进行了什么样的操作、造成文档有哪些变化和差异,以进行文档管理,使得计算机上的数据能“史记”,能“演进”,能在过去、现在“穿越”,能“合并”不同时间轴上的文档信息。
版本控制系统
版本控制,实现的方式和工具有很多。
- 本地版本控制系统,Local Version Control,第一代;
- 集中式版本控制系统,Centralized Version Control Systems,CVCS,第二代;
- 分布式版本控制系统,Distributed Version Control Systems,DVCS,第三代。
本地版本控制,有 SCCS1、RCS2 等系统;旨在跟踪单个文件的更改,签出的文件一次只能由一个用户在本地编辑;
集中式,有 CVS3、Subversion4、Perforce 等系统;由一个单一的集中管理的服务器,保存所有文件的修订版本。允许多个用户同时签出和使用代码;
分布式,有 Git、Mercurial、Bazaar、Darcs5 等系统;参与分工的每台计算机上的仓库内容都一样。
起始于第三代计算机(集成电路和小型机)向第四代计算机(个人计算机和移动终端)发展阶段。
版本控制系统资源
- Git (git) - http://git-scm.com/
- Mercurial (hg) - http://mercurial.selenic.com/
- Bazaar (bzr) - http://bazaar.canonical.com/
- Concurrent Versioning System (cvs) - http://www.nongnu.org/cvs/
- Darcs (darcs) - http://darcs.net/
- Fossil (fossil) - http://fossil-scm.org/
- GNU arch (tla) - http://www.gnu.org/software/gnu-arch/
- Monotone (mtn) - http://monotone.ca/
- Perforce (p4) - http://www.perforce.com/
- Subversion (svn) - http://subversion.apache.org/