SVN是什么
- SVN 是 Subversion 的简称,是一个开源的版本控制系统,CVS的接班人,目前绝大多数公司都是用 SVN 作为版本控制软件
相关概念
-
SCM: 全称是 Software Configuration Management,即软件配置管理,意思就是对软件的源代码进行控制与管理
为什么需要SVN
SVN的特点
TortoiseSVN VisualSVN Subversion 以及 VisualSVN Server的区别
-
客户端软件: TortoiseSVN 和 VisualSVN
-
服务端软件: Subversion 和 VisualSVN Server
-
从根本上说,TortoiseSVN(内核使用的是 Subversion) 和 VisualSVN 都是 Subversion 的衍生物,是
为 Subversion 服务的。
-
TortoiseSVN 可以很方便地向服务器提交代码、从服务器下载代码以及查看自己以前提交的代码
-
VisualSVN 是 SVN 的客户端,和 Visual Studio 集成在一起,VisualSVN 是收费的
-
Subversion 是 SVN 的源码库,是一个集成了客户端和服务端的“内核”,相关配置需要手动进行
-
VisualSVN Server 的内核使用的也是 Subversion,它包括 apache、Subversion 和 WMI(用于实现操作界面等),而且其中的很多配置都已经配置好了,比较容易上手,VisualSVN Server 标准版是免费的,企业版是收费的,在安装时可自行选择
为什么不直接使用Subversion
- 因为 Subversion 比较偏向于底层,我们需要用到的很多东西都没有集成,对于新手来说,使用难度很大
SVN下载
-
客户端软件下载请点击这里
-
服务端软件下载请点击这里
SVN服务端安装
说明: 由于软件版本的不一致,安装界面上可能会有些许区别,这里使用的是 VisualSVN-Server-3.8.1-x64
-
双击安装文件,点击 Next
-
勾选协议,点击 Next
-
使用默认选项,点击 Next
-
单击 Standard Edition
-
选择软件安装位置、仓库位置、端口号以及备份文件位置
-
单击 Install
-
安装完成,点击 Finish
如果电脑安装了360或者类似的安全软件,那么在软件安装过程中可能会拦截一些东西,这时只要都选择允许即可
SVN服务端配置
- 创建一个项目(以 Shop 为例)
- 启动服务端监管
-
对于Apache来说,我们通过在浏览器中输入 http://localhost(或ip地址)
来访问相关的文件,这个过程就叫做服务端监管
-
对于 SVN 来说,我们通过在浏览器中输入 svn://localhost(或ip地址)
来访问相关的数据仓库(如Shop仓库),这个过程就叫做服务端监管
-
如何启动服务端监管
-
打开 cmd,输入如下命令:
svnserve -d -r D:\VisualSVN-Server-3.8.1-x64\WebApp\Shop
说明:
-
回车,可以看到光标一直在闪烁,说明指令执行成功
特别注意:不要关闭当前的 cmd 窗口,如果关闭了,那么监管指令就强行终止了,也就没办法进行数据的连接了
通过以上指令,我们的 svn://localhost(或ip地址)
就可以直接指向 Shop 版本仓库,也就是说,当我们在浏览器中输入 svn://localhost(或ip地址)
的时候,就可以访问到 Shop 仓库下的相关数据,也即实现了监管
-
权限控制:
SVN客户端安装
说明: 由于软件版本的不一致,安装界面上可能会有些许区别,这里使用的是 TortoiseSVN-1.9.7.27907-x64-svn-1.9.7
-
双击安装文件,点击 Next
-
点击 Next
-
选择软件安装位置,然后点击 Next
-
点击 Install,直至软件安装完成,最后点击 Finish
如何验证SVN客户端是否安装成功
- 在桌面点击鼠标右键,如果结果如下图所示,则表示安装成功
SVN客户端汉化包的下载、安装
- 下载
-
安装
-
双击运行汉化包,点击 Next,等待安装完成,最后点击 Finish即可
-
安装完成后,在桌面点击鼠标右键,选择 TortoiseSVN --> Settings --> General,然后在右边的 Language 一栏选择简体中文,最后点击确定,再次打开设置界面时,就会发现是中文的了
-
如果想切换回英文,只需在上一步中将 Language 改为 English 即可
使用SVN客户端连接SVN服务器
-
相关说明
-
首先,我们设想这样一个使用场景:公司在开发项目时,需要把项目部署在 SVN 服务器上,假设这台 SVN 服务器的 IP 地址为 192.168.1.1
-
以之前的 Shop 为例,当要开发这个项目时,项目经理会把项目相关的配置和初始化工作做好
-
项目相关的配置也即上面所提到的 SVN 服务端的配置这部分工作
-
项目的初始化涉及到的有:编写核心框架、编写核心函数库等,项目经理在自己的电脑上完成这些文件的编写后,就会使用 commit 指令将这些文件上传到 SVN 服务器的 Shop 项目中(在使用 commit 命令之前,需要先使用 checkout 指令与服务器建立连接,下面会详细说明)
-
项目经理的 checkout(检出)过程
-
重要说明:
-
当项目经理在 SVN 服务器上完成了项目的配置之后,接下来要做的就是在自己的电脑上通过 SVN 客户端与 SVN 服务器建立连接
-
无论是项目经理还是程序员,如果想建立与 SVN 服务器的连接并更新数据到本地,第一次的操作都是 checkout
-
当项目经理使用 checkout 指令与服务器建立连接后,会从服务器下载一个名为 .svn
的隐藏文件夹到本地,这个文件夹是否出现也是检出成功与否的标志
-
在第一次之后,如果还需要下载服务器端的数据到本地,则使用的是 update 指令,而不再是 checkout 指令
-
我们把第一次与 SVN 服务器进行连接操作并更新 Shop 项目中的相关数据到本地的过程称之为检出
-
项目经理 checkout 的步骤:
-
首先要启动服务端监管,方法在上面已经介绍过
-
假设自己现在是项目经理,在自己电脑中选择一个位置新建一个文件夹,在这里我选择的是 E:\Shop
,然后在 Shop 文件夹下新建一个名为 jingli
的文件夹
-
进入 jingli
这个文件夹,在空白处点击鼠标右键,选择 TortoiseSVN --> 版本库浏览器(汉化之后的名称,下同)
-
在弹出的窗口中输入如下图所示 URL,这里因为是在本机测试,所以写的是 localhost,如果不是在本机,就写 SVN 服务器的 IP 地址,比如上面提到的 192.168.1.1
-
点击确定之后,会弹出如下界面,选中左边栏的条目,用鼠标右键单击,然后在弹出的菜单中单击检出
-
在接着弹出的如下两个窗口中都点击确定即可,这时在 jingli
这个文件夹下就会生成一个名为 .svn
的隐藏文件夹,将其显示出来即可看到,这也是我们与 SVN 服务器成功建立连接的标志。至此,项目经理的 checkout 的过程已全部完成
SVN三大指令
-
检出(checkout)
-
提交(commit)
-
前提:必须先启动服务端监管
-
作用:提交本地数据到服务器
-
如何使用 commit 指令
-
以项目经理为例,假设项目经理在自己的电脑上(也就是在上面提到的 jingli
这个文件夹下)编写好了项目的需求文档等文件,现在需要把这些文件上传到 SVN 服务器,那么只需在进入 jingli
这个文件夹后,在空白位置单击鼠标右键,然后单击 SVN提交
即可,如下图所示:
-
点击 SVN提交
之后,会出现如下窗口,勾选需要上传的文件和目录/文件夹,然后点击确定,若出现下图2所示界面,则代表提交成功
特别注意:备注信息必须填写
-
更新(update)
SVN常用图标解释