SVN版本控制系统

 

目录

 

什么是SVN?

特点:

svn服务端

SVN的服务端

安装VisualSVN Server 3.8.6

1.前期配置工作

2.服务器监管

3.权限控制

4.SVN客户端配置

5.svn使用详解

图标集

忽略功能:

版本回退

​​​​版本冲突(开发人员每天上班前更新自己的代码,旺财9:30提交,小强10:00提交)

配置多仓库与权限

多项目监管

监管总目录权限限制:

SVN的配置和管理

SVN扩展程序


什么是SVN?

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

SVN 官网:https://subversion.apache.org/
Github SVN 源码:https://github.com/apache/subversion

特点:

操作简单、入门简单、跨平台(MacOS 、Windows、Linux)操作 。

svn服务端

SVN是输入C/S服务类软件,有客户端和服务端。

SVN的服务端

Repository(源代码库):源代码统一存放的地方;
Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份;第一次连接服务器需要使用Checkout
Commit(提交):当你已经修改了代码,你就需要Commit到repository;
Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更。Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。

如果两个程序员同时修改了同一个文件呢, SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN会提示文件Confict, 冲突,需要手动确认。

公司有多台服务器:Web服务器,数据库服务器,SVN服务器

访问SVN服务器地址:svn://192.168.1.1/项目名称

安装VisualSVN Server 3.8.6

在这里插入图片描述
在这里插入图片描述
选择可视化界面,增加环境变量
在这里插入图片描述
选择标准版
在这里插入图片描述
不要出现中文、特殊字符和空格,端口号改为8000以后的,防止冲突
在这里插入图片描述
进度条走完,安装完毕
在这里插入图片描述

1.前期配置工作

1.先在svn目录下建立一个WebApp文件夹;
2.在WebApp文件下建立Shop(项目名称),目前还只是文件夹,还需要和svn产生联系;
在这里插入图片描述
3.DOS命令行下输入 svnadmin create H:\SVN\Webapp\Shop 文件夹,如果配置成功,那么Shop应该多了6个文件;
在这里插入图片描述

在这里插入图片描述

2.服务器监管

Apache— http://localhost:8080 访问htdocs目录

SVN— svn://localhost: 访问相关的数据仓库(如Shop)

svnserve -d -r H:\SVN\Webapp\Shop
会弹出警告标志,然后光标会一直闪烁

在这里插入图片描述

通过以上指令(svnserve -d -r H:\SVN\Webapp\Shop),我们的SVN://localhost或者IP地址就可以直接指向Shop文件夹了。

3.权限控制

默认情况下,SVN服务器不允许匿名用户上传文件到服务端的,所以必须更改项目的相关控制文件。

打开shop\conf,找到svnserve.conf;

在这里插入图片描述

在这里插入图片描述
更改第19行代码如下: (去除#号,改为可写)权限可读可写;

在这里插入图片描述

4.SVN客户端配置

1.如图安装,记得重启一下即可;
2.还可以安装汉化包。(可选)
3.配置完之后第一次牵手:checkout(检出)
打开隐藏功能如果能看到.svn这个文件夹就说明客户端和服务端连接起来了,检出成功;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装SVN中文版(可选):

使用客户端软件连接SVN服务器(checkout检出)
1.首先随便建个文件夹,取名jingli;(server/apache/htdocs/jingli)
2.在你的项目目录右键(进入jingli目录)—>TortoiseSVN—>版本库浏览器—>输入SVN服务器地址(本机直接输localhost,不是本机输入服务器的IP地址);
在这里插入图片描述 
svn://svn服务器地址—>check out(检出)

并未出现,设置显示隐藏文件(计算机--->组织---->文件夹选项---->查看--->显示隐藏文件---->应用---->确定)

重新CheckOut检出,出现如下界面则证明成功,操作如下:在你的项目目录右键(进入jingli目录)—>TortoiseSVN—>版本库浏览器—>输入SVN服务器地址(本机直接输localhost,不是本机输入服务器的IP地址)—>右击项目,CheckOut;

在这里插入图片描述
显示隐藏文件,检出OK!
在这里插入图片描述

5.svn使用详解

1.启动服务器 (Dos窗口输入)svnserve -d -r H:\SVN\Webapp\Shop;
2.在新增文件页面右键—>提交;
3.填写必要信息,方便版本回退;

在这里插入图片描述
更新完毕;
在这里插入图片描述
如果有新员工李四狗加入公司,他应该如何下载项目源码呢?

1.首先建立lisigou文件夹,然后打开版本库浏览器(sisigou文件夹内右击);

在这里插入图片描述
2.输入svn地址
在这里插入图片描述
3.可看到之前的历史版本;
在这里插入图片描述
4.检出操作,下载源码到lisgou;
在这里插入图片描述
成功检出
在这里插入图片描述
如果李四狗也需要提交自己的代码,提交,服务器会同步更新;
在这里插入图片描述
如果经理想看李四狗今天做了啥,进入jingli目录,右击点击更新,即可;
在这里插入图片描述

图标集

在这里插入图片描述

(1)常规:客户端文件与服务器端文件一致

(2)冲突:客户端提交的文件与服务器端数据不一致

(3)删除:服务器端数据已删除,客户端文件显示已删除

(4)增加:编写的文件已经添加到提交队列

(5)无版本控制:编写的文件没有添加到提交队列

(6)修改:客户端文件已修改但未提交

(7)只读:客户端文件以只读形式存在

(8)锁定:服务器端数据已锁定,客户端显示该图标

(9)忽略:客户端文件已忽略,不需要进行提交上传

忽略功能:

(1)忽略某个文件

有些文件不需要上传到服务器,设置忽略列表:
实现:需要设置的文件-->右击--->TortiseSVN--->增加到忽略列表(一个是忽略文件,一个是忽略文件夹)

(2)忽略某个类型的文件

版本回退

1.什么是版本回退
在这里插入图片描述
2.版本回退功能

1.经理删除了index.php,提交;
在这里插入图片描述
2.经理发现删错了,需要回退;

(1)jingli目录下右击,点击如下:

(2)选择根据日志回退,点击显示日志(3)更新,删除的文件恢复;


在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
版本冲突(开发人员每天上班前更新自己的代码,旺财9:30提交,小强10:00提交)

在这里插入图片描述

在这里插入图片描述
解决之道
避免版本冲突:
合理分配项目开发时间;
合理分派项目开发模块。

通过SVN解决版本冲突问题:

(1)更新服务器端数据到本地(下图1点确定)

在这里插入图片描述

(2)删除除index.php以外的文件

(3)修改index.php冲突文件

(4)重新提交index.php到服务器

配置多仓库与权限

多项目监管

通过监管Webapp总目录实现多项目监管

(1)Dos窗口输入如下指令:d代表后台运行    r代表监管目录   

监管总目录权限限制:

authz:授权文件,告诉用户有哪些权限
passwd:认证文件,表示用户名和密码
默认情况、两个文件都是禁用的,必须要开启上面两个文件,具体步骤如下:

1.进入仓库的conf文件,注释匿名用户可读写的权限;(19行加‘#’号)
在这里插入图片描述
2.开启认证和授权文件;(27和36行去掉‘#’号)

在这里插入图片描述
3.打开passwd文件,编写认证文件,定义用户和密码:(10行和11行为自己编写加入)
在这里插入图片描述
4.打开authz文件,编写授权文件:(建立两个组:admin和itcast组,并设置两个组的权限,shop为仓库名称)
在这里插入图片描述
分组+授权

测试是否成功

SVN的配置和管理

(1)配置服务器的自启动服务
sc create SVNService binpath = “H:\SVN\bin\svnserve.exe – service -r H:/Files/jingli” start = auto
在cmd中输入相关命令: sc create 服务名称 binpath=空格"svnserve.exe --service"

在控制面板-管理工具-服务,双击运行,找到SVNserver


运行成功,svn监管服务开发成功
(2)使用批处理文件来停止和开启管理器(重点)
启动服务 :net start 服务名称
停止服务: net stop 服务名称
删除服务 :sc delete 服务名称

封装成为.bat封装就可以减少很多工作量


(3)模拟真实场景(重难点)

(1)SVN工作流程


2、 使用钩子程序对项目进行更新

 

post-commit.tmpl: 事物完成之后触发的钩子程序

默认情况用批处理或者Shell指令完成

具体使用步骤:

SVN扩展程序

1、BAE云引擎

百度应用引擎(BAE),网络应用开发平台。

http://bce.baidu.com/

在这里插入图片描述

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值