首页 理论教育SVN介绍:PHPMVC开发实战中的版本控制系统

SVN介绍:PHPMVC开发实战中的版本控制系统

【摘要】:SVN是一套版本控制系统,简单地说就是一套自动备份系统。这个比喻虽然不太恰当,但使用SVN完全不用担心数据的丢失,只要从一开始就使用SVN,哪怕项目快结束了,也能找到刚开始时的文件内容。事实上SVN远不止备份那么简单,之所以这样比喻,是为了让没接触过SVN的读者有个直观印象,方便接下来的学习。图1-21 SVN流程图图1-21简单地演示了SVN多人协同开发时的流程。

SVN全称为SubVersion,它是一套版本控制系统,SVN近年来大受欢迎的一个重要原因是SVN解决了团队合作项目中的许多问题。在运用版本控制之前,一个团队的开发人员通常使用共享文件夹的方式进行协同编程,有些甚至使用QQ等文件传输工具进行相互传递,在极少人参与的项目环境中不会成为问题,但在一些比较大的团队项目,使用上述方式进行团队协作,效率是非常低的,而且整个项目是不可控的,一旦需要找回旧的文件,这时就是一项复杂的任务。SVN是一套版本控制系统,简单地说就是一套自动备份系统。这个比喻虽然不太恰当,但使用SVN完全不用担心数据的丢失,只要从一开始就使用SVN,哪怕项目快结束了,也能找到刚开始时的文件内容。

事实上SVN远不止备份那么简单,之所以这样比喻,是为了让没接触过SVN的读者有个直观印象,方便接下来的学习。SVN使用数据库形式保存文件版本,项目中的文件只需要有一个文件发生了改变,项目版本号就会自动加1,版本号是唯一能够让文件回滚的凭证,有了版本号开发人员就可以大刀阔斧地进行程序开发了,所以有些程序员亲切地把版本控制称为“项目开发的时光机器”。SVN版本控制流程如图1-21所示。

978-7-111-42852-7-Part01-52.jpg

图1-21 SVN流程图(www.chuimin.cn)

图1-21简单地演示了SVN多人协同开发时的流程。首先SVN服务器为项目创建版本库,当“程序员1”用update命令将数据同步(当本地项目内容为空时需要使用checkout命令进行同步)到SVN数据库时,SVN服务器将与本地计算机进行数据同步,完成后即可处于开发状态;此时“程序员1”所编写的程序将只能自己看到,当“程序员1”确定所编写的程序完成时,可以“commit(提交)”到SVN服务器;“程序员2”与“程序员3”可以使用“update”命令获取被改动的文件;SVN版本控制系统内置有一套高效的版本冲突处理机制,防止3个程序员同写一个文件时造成的冲突。

SVN是一套成熟的版本控制系统,经过多个版本的演进,SVN已经能够运行在Windows、Linux、MacOS等操作系统上,并且提供了商业化支持;SVN之前的版本控制系统为CVS(Concurrent Versions System),CVS是专为C、C++设计的,由于其先天性的缺陷(如CSV只能记录单一文件版本,CVS安全策略单一等)所以并没有得到广泛的应用。SVN沿袭了CVS的特点,改进了CVS的版本控制方式,使用了类似于数据库的方式进行版本管理;SVN一直强调用户自行管理的特点,所以强化了SVN服务器的安全功能,使得项目开发者对各自所管理的模块更加清晰,易于控制。SVN的完善、易用已经成为了团队项目合作的代名词,作为一个PHP程序员,熟悉SVN已经成为一门必要的知识,本节将会详细讲解SVN的安装与使用。