02-Subversion安装与配置
1. 安装服务器端程序
①下载源码包
Apache组织自己维护更新的只是Subversion的源码,Subversion源码是使用C语言开发的。各个版本的源码包的下载地址是:
官方网站:http://subversion.apache.org/
下载:http://subversion.apache.org/download/
官方提供的服务端安装包,安装后需要通过命令行操作,适用于专业配置管理员使用。
②下载二进制安装包
下载到的文件是:Setup-Subversion-1.8.9-1.msi
③双击运行Setup-Subversion-1.8.9-1.msi
注意:指定安装目录,要求是非中文无空格。
④安装程序会自动配置Path环境变量:可在系统环境变量中进行手动查找。
所以,在%Subversion/bin%下的可执行文件能够在任意目录下运行。
⑤验证是否安装成功:
在命令行输入:svn --version
看到如下信息就表示服务器端程序安装成功:
2. 配置版本库【SVN存放版本的仓库】
①为什么要配置版本库?
Subversion是将文件数据信息保存到版本库中进行管理的,为了满足用户的不同需求,Subversion允许用户对版本库目录进行定制。
②在一个非中文无空格目录下创建一个文件夹,作为版本库的根目录。
例如:D:\DevRepository\Subversion
③在版本库根目录下创建与具体项目对应的子目录——这样做的目的是使一个SVN服务器能够同时管理多个项目,而不是为每一个项目搭建一个SVN服务器——这显然太浪费资源了。
例如: D:\DevRepository\Subversion\CRM
D:\DevRepository\Subversion\ERP
D:\DevRepository\Subversion\OA
④创建版本库
命令格式
主命令 | 子命令 | 参数1 |
---|---|---|
svnadmin | create | 仓库路径 |
举例 | svnadmin create D:\DevRepository\Subversion\OA |
⑤版本库目录结构
版本库创建成功后会在指定目录下产生如下的目录结构
3. 启动服务器端程序
①SVN服务器必须处于运行状态才能响应客户端请求,帮助我们管理项目文件。所以我们必须将SVN服务器启动起来。启动SVN服务器有两种方法,一个是命令行方式,一个是注册Windows服务。
②命令行方式
[1]命令格式
主命令 | 参数1 | 参数2 | 参数3 |
---|---|---|---|
svnserve | -d表示后台执行 | -r表示版本库根目录 | D:\DevRepository\Subversion |
举例 | svnserve -d -r D:\DevRepository\Subversion |
[2]验证服务是否启动
SVN服务监听3690端口,打开一个新的cmd窗口,使用netstat -an 命令查看3690端口是否被监听
[3]命令行方式的缺陷是:只要运行服务器端程序的命令行窗口一关闭,服务就停止了,很不方便,而且每次开机都需要手动启动。
③注册Windows服务
[1]将SVN服务端程序注册为Windows服务,就可以让SVN服务随系统一起启动,克服了命令行方式的不足。
[2]注册Windows服务需要利用XP、2000以上系统自带工具Service Control,执行文件是sc.exe,注意这个命令不是SVN的命令
[3]命令格式
主命令 | 子命令 | 参数1 | 参数2 | 参数3 | 参数4 |
---|---|---|---|---|---|
sc | create | 服务名 | binpath= “运行服务所需要的二进制文件路径以及运行该二进制文件的命令行参数” | start= auto | |
表示自动启动 | depend= Tcpip表示依赖Tcpip协议 | ||||
[注意:在这个命令中,等号左边都没有空格,右边都有一个空格!] | |||||
[4]binpath组成结构说明 |
svnserve.exe路径 | svnserve命令参数1 | svnserve命令参数2 | svnserve命令参数3 |
---|---|---|---|
SVN安装目录\bin\svnserve.exe | --service表示以服务方式启动Subversion | -r表示版本库根目录 | 版本库目录 |
[5]关于“版本库目录” |
单仓库 | 指定与具体项目对应的仓库目录 | 例如:D:\DevRepository\Subversion\CRM | 只能为一个项目服务 |
---|---|---|---|
多仓库 | 指定版本库的根目录 | 例如:D:\DevRepository\Subversion | 可以为多个项目服务 |
[6]最终命令举例
sc create MySVNService binpath= "D:\DevInstall\Subversion\bin\svnserve.exe --service -r D:\DevRepository\Subversion" start= auto depend= Tcpip
- 在Win7及以上系统中,运行该命令需要管理员权限,否则会得到如下错误提示
- 解决的办法是以管理员身份运行cmd命令行窗口即可
- 在防火墙或电脑卫士提示阻止时,选择允许
- 此时查看当前系统中的服务,可以看到我们刚刚创建的服务,但此时它还没有启动,如果创建失败,需检查sc命令是否正确
- 启动此服务
启动服务的命令格式如下:
格式 | sc start 服务名 |
---|---|
举例 | sc start MySVNService |
- 打开命令行窗口运行netstat –an查看3690端口是否被监听
- 如果启动失败,那很有可能是binpath中的内容有错误,此时只能将已经创建的服务删除,重新创建。
- 删除服务之前,最好先停止服务。停止服务的命令格式如下:
格式 | sc stop 服务名 |
---|---|
举例 | sc stop MySVNService |
- 删除服务的命令格式如下:
格式 | sc delete 服务名 |
---|---|
举例 | sc delete MySVNService |
- 删除、启动、停止服务同样需要管理员权限