1.
SCM:软件配置管理
所谓的软件配置管理实际就是对软件源代码进行控制与管理
CVS:元老级产品
VSS:入门级产品
ClearCase:IBM公司提供技术支持
SVN:主流产品
2.
SVN全称SubVersion
SVN是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数软件公司都是用SVN作为代码版本管理软件
3.
特点:操作简单,入门容易
支持跨平台操作(Window、Linux、MacOS)
支持版本回退功能(时间机器)
4.获取SVN软件
属于C/S结构软件(客户端与服务器)
服务器端软件:VisualSVN
网址:http://www.visualsvn.com/
客户端软件: Tortoisesvn
网址:http://tortoisesvn.net/downloads/
5.当我们连接或第一次连接SVN服务器时都需要使用这款指令Checkout(检出):
一是建立与服务器的连接,二是更新数据到本地,只会在连接时使用一次,
如果以后还要更新数据到本地就需要使用Update指令(更新)
可以通过Commit指令提交数据到SVN服务器上。
在SVN中每一个项目都称之为数据仓库
6.SVN服务端配置
1.创建一个项目
1)首先在SVN服务端创建一个公有目录WebApp做为项目目录
2)在WebApp目录下创建Shop文件夹,做为Shop(版本仓库)
3)创建版本仓库,DOS环境基本语法:
svnadmin create Shop 文件夹路径(Shop 仓库)
如果Shop仓库配置成功,那么Shop文件夹会显示以下目录结构
2.进行服务端监管
Apache->http://localhost或(ip地址)访问到htdocs目录下相关文件(监管)
SVN->svn://localhost或(ip地址)访问到相关数据仓库(如Shop仓库)
基本语法:
svnserve -d(后台运行) -r(监管目录) 版本仓库路径
通过以上指令,我们的svn://localhost或ip地址就可以直接指向Shop版本仓库。
3.权限控制
默认情况下,SVN服务器是不允许匿名用户上传文件到服务端的,所以必须更改项目的相关配置文件。
打开conf下的svnserve.conf,更改第19行代码,去除前面的'#',更改其值为write(可读可写)
7.使用客户端软件连接SVN服务器
(Checkout 检出)
首先在你的项目目录鼠标右键->TortoiseSVN->版本库浏览器->输入svn服务器地址:
svn://svn服务器地址->Shop项目(仓库)
如果出现.svn隐藏文件夹,代表检出成功。
8.svn使用详解(一)
忽略功能
有些文件不希望上传至svn服务器,应该将该文件或该类型的文件添加至忽略列表
1)忽略某个指定的文件
9.svn使用详解(二)
版本回退功能:
10.svn使用详解(三)
版本冲突:
解决之道:
1)合理分配项目开发时间
2)合理分配项目开发模块
3)通过svn解决版本冲突问题
一 更新服务器端数据到本地,
login.php:整合后的login.php文件
login.php.mine:小强修改后的login.php文件
login.php.r0: 09:00更新时的login.php(起始状态)
login.php.r4: 旺财修改后的login.php文件
二 删除除login.php以外的其他三个文件
三 修改整合login.php冲突文件
四 重新提交数据到svn服务器端,即可解决版本冲突问题
11.配置多仓库与权限控制
1.配置多仓库
在实际项目开发中,我们可能会同时开发多个项目,那么我们如何进行多项目监管呢?
通过svnserve进行仓库监管,但是监管指令只能监管某一个文件夹,而不能同时监管多个仓库
答:可以通过监管WebApp总目录来达到监管所有仓库的目的
svnserve -d(后台运行) -r(监管目录) WebApp(项目总目录)
打开DOS窗口,输入以上指令后,就可以通过svn://localhost或ip地址来访问
如果需要访问Shop项目、Wechat项目
Shop项目:svn://localhost/Shop
Wechat项目:svn://localhost/Wechat
2.权限控制
如果要使用权限控制有一个前提:必须首先开启权限功能
在每一个仓库中都有一个conf文件夹,里面有三个文件
authz文件:授权文件
告诉哪些用户具有哪些权限
passwd文件: 认证文件
标识当前svn系统中某个仓库具有哪些用户以及相应的密码
默认情况下,以上两个文件都是禁用的,如需要使用,首先要开启以上两个文件
开启步骤如下:
1.打开svnserve.conf 配置文件
2.注释匿名用户的可读写权限
3.开启认证文件与授权文件
4.编写认证文件定义相关用户名与密码
5.编写授权文件
6.测试