SVN介绍+使用文档教程

什么是SVN

svn全称SubVersion

svn是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。(GitHub、Oschina、CSDN)

支持Windows、Linux、MacOS

前身是CVS

时间机器

5、SVN的安装与使用

SVN属于C/S结构软件,分为客户端与服务器端

SVN下载:

服务器端:

http://www.visualsvn.com/

客户端:

http://tortoisesvn.net/downloads

6、SVN的使用原理图

二、SVN的安装与使用

1、安装SVN服务器端

首选安装(VisualSVN-Server)

备选安装(Subversion)

以VisualSVN为例:

下一步:

下一步:

注:安装路径请选择除C盘以外的任一盘符且不能出现中文、空格等特殊字符

下一步,下一步,Finish完成即可,完成后,请重启电脑,也可以采用强制中止explore.exe进程。

打开运行窗口,输入svnadmin,如出现一下提示代表安装成功:

2、安装客户端SVN

客户端SVN其是分版本的,分为32位与64位

通过以上确认您操作系统的类型:64位

安装成功后,如下图所示:

设置软件语言:

软件安装完成后,也需要重启,否则无法看到SVN图标

3、SVN的使用

1)创建版本仓库(Shop),在服务器端创建文件夹保存我们的项目,如下图所示

以上文件夹只相当于一个普通文件夹,其还不是仓库

2)建立SVN仓库

基本语法:

svnadmin create 仓库路径(如:D:\svn\MyApp\Shop)

3、配置仓库监管

基本语法:

svnserve --d(后台运行) --r(监管目录) 仓库路径(如D:\svn\MyApp\Shop)

监管:

apache : http://localhost/定位到htdocs

svn:svn://localhost或主机ip定位到监管目录(仓库)

以上窗口请勿关闭,否则系统自动关闭svn链接

4、客户端连接Shop仓库

输入svn://ip地址

检出成功,如下所示:

如出现以下图标代表,交互成功

除了图标,还有哪些变化呢?

4、Commit操作

如果要提交本地文件到服务器端,请使用Commit命令

首次提交会出现以下错误:

原因:由于默认情况下,我们是不允许直接上传文件到服务器端,必须进行配置

打开仓库目录下的配置文件,如下图所示:

设置匿名用户访问权限:

再次Commit

成功。

5、Update更新

三、SVN中的图标集

1、同步图标:

说明:本地文件已与服务端文件同步,大小和修改时间一致。

2、未受版本控制图标

说明:当前文件在本地存在,在服务器端不存在

3、添加图标

说明:当前文件在本地存在,在服务端不存在,但下次提交时,会自动将该文件提交到服务器端

4、修改图标

说明:当前文件与服务端文件不同步,当前文件有修改,会自动提示红色叹号

5、删除图标

说明:该文件在服务端已删除,本地未删除

6、冲突图标

说明:当前文件与服务端文件有冲突,必须解决后才可以上传

7、忽略图标

说明:当前文件不提交到服务端中,默认显示忽略图标

四、SVN使用细节

1、SVN中的源码存储机制

2、忽略文件

有些情况下,有些文件并不需要上传到服务器中(比如:需求文档、ER图解等),但是svn每次提交都会提示是否上传此文件,如何解决呢?

答:可以忽略文件命令

在要忽略的文件上,鼠标右键------TortoiseSVN------Add to ignore list

将该文件添加到忽略列表

将该系类文件添加到忽略列表

3、配置多仓库

在实际项目开发中,我们可能拥有多个项目,那么如何解决svn监管多项目目录问题?

答:可以采用apache监管方式,让svn监管项目主目录

1)创建仓库

svnadmin create 仓库路径

2)建立服务器端仓库监管

由于我们拥有多个项目,所以可以采用监管MyApp主目录实现多项目监管

svnserve --d --r MyApp路径

问题:MyApp主目录通过监管后,其是文件夹还是数据仓库?

答:虽然可以通过svnserve监管MyApp目录,但是MyApp仍是一个文件夹,其只是提供一个公用的监管目录而已。

3)通过svn://localhost或ip地址/仓库名称来访问指定仓库

svn://localhost或ip地址指向MyApp目录,但是真实的仓库在MyApp目录下面,所以可以采用如下方式访问指定仓库

如:svn://localhost/OA

4、版本回退

有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本退回到以前的某个版本

1)在项目文件夹中的空白位置鼠标右键,如下图所示

2、打开Head revision,单击show log

3)选择想要返回的版本信息,确定即可

5、版本冲突

1)版本冲突原理

2)如果两个人对同一个文件进行修改,会引起更新冲突,如何解决?

3)版本冲突解决方案

合理分配项目开发时间

小强上午开发 旺财下午开发

合理分配项目开发模块

小强开发文章模块 旺财开发邮件模块

如果以上情况,无法解决版本冲突,那么可以采用如下方式:

1)更新(Update)最新项目文件到本地

发现系统新增加了多个文件

index.php.r5文件:记录的14:30共同下载的index.php文件信息

index.php.r6文件:记录的15:00旺财更新的文件信息

index.php.mine文件:记录的是小强15:30要上传的文件信息

index.php文件:记录是整合后的文件信息

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

3)更新index.php文件

4)重新上传冲突文件即可

五、SVN中的权限控制

在实际的项目开发中,我们需要为用户进行分权限管理:

对于高级用户:可读可写

对于普通用户:可读权限

1、找到核心配置文件

仓库目录/conf目录

authz:授权文件,内容记录了svn中的用户具有哪些权限

passwd:密码文件,内容记录了svn用户的用户名以及登陆密码

svnserve.conf:仓库的核心配置文件,其内容对整个仓库进行配置

2)启用authz与passwd文件进行权限控制

默认情况下,authz与passwd文件默认是关闭的,必须通过svnserve.conf进行开启操作,否则无法使用。

3)为svn设置相应的用户名与密码

4)为相应的用户设置相应的权限

5)验证权限与密码

重新连接服务器svn,会发现拥有以下提示:

六、配置SVN服务

1、解决黑窗口问题

在windows系统中,可以将监管命令已系统服务的形式追加到系统中,那么我们以后电脑启动,我们的svn就会自动启动了。

基本语法:

sc create 服务名称 binpath=空格"D:\subversion\bin\svnserve.exe --service -r D:/svnroot" start=空格auto

注:该命令只能在超级管理员权限添加,另该命令具有两个空格,谨记!!!

2、将svn常用服务设置为批处理文件

七、云引擎服务

微信------网络------服务器支持(虚拟主机、服务器、云引擎)

1、云引擎

百度BAE云平台

http://developer.baidu.com/

新浪SAE云平台

http://sae.sina.com.cn/

百度云平台使用

单击创建工程

创建工程设置:

创建成功后,如下图所示

通过设置地址访问代码

通过SVN上传代码到BAE平台,上传成功后,请手工发布:

我们还可以使用扩展服务,创建数据库(MySQL、Redis)

新浪SAE云平台

创建版本信息:

访问地址:

八、域名配置与虚拟主机管理

域名和空间:中国万网、西部数据、华夏名网、美橙互联、冰橙互联

中国万网:速度快、稳定、价格昂贵,域名必须备案,否则无法使用

西部数据、美橙互联、冰橙互联

华夏名网:速度比较快、稳定、价格比较优惠 http://sudu.cn/

Godaddy

https://www.godaddy.com/about/godaddy-chinese.aspx?isc=bsfndom4\&cvosrc=ppc.baidu

相关推荐
曹牧2 小时前
SVN:Checkout Depth
svn
金融小师妹9 小时前
基于机器学习的黄金定价模型:风险不确定性下降后的结构重估
大数据·人工智能·深度学习·svn·能源
Vanranrr2 天前
Windows 环境下 SVN 命令行能力补齐:一次工程化排障与标准化实践
windows·svn
金融小师妹2 天前
AI宏观情景模型解析:能源冲击与通胀粘性下的全球经济增长下修路径
大数据·svn·逻辑回归·能源
Vanranrr2 天前
从图形化到命令行:一次 SVN 工程化能力补齐与流程治理实践(Windows)
windows·svn
金融小师妹4 天前
AI供需模型解析:OPEC产量断崖式下滑与全球能源定价重构机制
大数据·深度学习·svn·逻辑回归·能源
曹牧8 天前
svn:“relocate”操作中出现“no uuid but wc has”的错误
svn
曹牧8 天前
svn: svn relocate ‌之externals‌
数据结构·svn
曹牧10 天前
在 Visual Studio(VS)中变更 SVN 地址
ide·svn·visual studio