版本管理控制一直是项目开发中必须使用的工具。从cvs-svn-git,不管哪种版本管理工具的出现与发展都证明了版本管理在项目开发中的重要地位。
目前git的使用相比svn更显潮流,然而作者的项目历史原因都还在使用svn,所以有了这篇svn使用体会。
由于原来使用svn是在window下,使用客户端以及eclipse插件,没有对svn做过更深的理解与研究,近期作者的项目转向linux下开发,开始使用命令行svn,有了钻研下svn的机会和想法。
svn是做什么用的:
作为版本管理工具,svn的首要作用当然是存储与管理项目中的各种文件,其中包括源代码文件、文档、甚至二进制文件。对于多人的项目团队来说,仅仅是存储功能还是远远不够的,svn的最终目标是为多人协调工作提供版本管理支持。
SVN的版本管理机制:
版本管理有几种主要方案:
1. 锁定-修改-解锁方案:方案如图所示:
2. 拷贝-修改-合并方案:方案如图所示:
那么svn采用的是第二种方案。
svn版本库及实践:
1. svn使用URL执行具体的svn版本库,如:
http://svn.example.com:9834/repos
2. 工作拷贝:
使用svn co svnURL,可以在本地创建一个工作拷贝,如:
svn co http://svn.example.com:9834/repos
3. svn采用混合版本管理
svn的版本号都是针对目录结构的,不针对某一个特定的文件,如:
在工作拷贝WA下,假设WA当前revision为6,且没有其他人提交库下更改,svn co fileA, 那么head revision会为7,同时该working copy下 fileA为revision7, 而其他文件仍保持revision6.
To Be Continued