通常软件开发由多人协作开发,如果对代码文件、配置文件、文档等没有进行版本控制,将会出现很多问题:
- 备份多个版本,占用磁盘空间大
- 解决代码冲突困难
- 容易引发BUG
- 难于追溯问题代码的修改人和修改时间
- 难于恢复至以前正确版本
- 无法进行权限控制
- 项目版本发布困难
版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。
SVN(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了SVN。Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件CVS,在CVS的功能的基础上有很多的提升同时也能较好的解决CVS 系统的一些不足。
复制-修改-合并方案(Subversion默认的模式)
在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。
锁定-修改-解锁方案
在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。此模式不适合软件开发这种工作。
版本控制器的工作方式:
独立服务器方式:
svnserve
借助Apache方式:
mod_dav_svn
SVN版本数据存储方式:
BDB (Berkeley DB)
数据库方式
FSFS
文件方式(推荐)
官方安装包:
官方网站:http://subversion.apache.org/
下载:http://subversion.apache.org/download.cgi
志愿者开发的图形化操作界面的svn服务端,它适用于普通软件开发人员使用。
下载地址:https://www.visualsvn.com/downloads/
需注意:
------------------------------------------------------------此处博主已安装完成,此图来源网络,因版本不一样,界面会有不同,配置是一样的选项。
创建仓库:
选择:VisualSVN Server(local)>Repositories >新建 > Repository...
弹出下面界面:
选择:下一步
这里需要填写自己的命名
弹出下面界面:
之后一直“下一步”即可。
一个空仓库即创建成功。
仓库地址为:
https://ip地址或计算机名/svn/仓库名称
创建工程目录:
点击右键,选中新建 > project Structure...
弹出以下界面:
填写完成以后点击 ok,
此为博主创建成功后的目录,博主输入的工程名为OA
此处应显示为个人书写的项目工程名。
展开以后,如上图,
各目录的作用:
trunk:项目开发代码的主体,是从项目开始直到当前都处于活动的状态,从这里可以获得项目最新的源代码以及几乎所有的变更历史信息。
branch:从trunk的某个点分离出来的代码拷贝,通常可以在不影响主干的前提下在这里进行重大bug的修改,或者做实验性的开发,以及定制功能开发等。如果分支达到了预期的目的,通常可以被合并(Mgerge)到主干中。
tag:用来表示trunk和branch的某个点的状态,以代表项目的某个稳定状态,通常为最终发布状态。
TortoiseSVN客户端
svn客户端需要通过网络访问svn服务端提交文件、查询文件等,可通过以下客户端类型访问svn服务端:
1、使用Subversion提供的客户端命令
使用方式:在命令行下输入命令操作。
2、使用Torotise图形化界面操作(推荐)
3、使用Eclipse等开发工具插件操作(推荐)
TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。
TortoiseSVN是Subversion 的Windows 扩展。它使你避免接触Subversion 枯燥而且不方便的Command Line。它完全嵌入Windows Explorer,使用时只需在正常的窗口里右键操作就可以了
下载:http://tortoisesvn.net/downloads.html
提供 32位和64位不同版本,安装tortoiseSVN需要修改客户端电脑右键菜单,安装后需要重启电脑。(这一点很重要,望读者谨记。)