版本控制器SVN
二、SVN服务器端安装与配置
- 服务端程序安装
- 安装Setup-Subversion-1.6.5.msi
-
Win7及以上系统此处需要确认权限
- 安装程序会自动配置Path环境变量
D:\DEVINSTALL\SUBVERSION\BIN;
验证是否安装成功
在命令行输入:svnserve --version
看到如下信息就表示服务器端程序安装成功 - 安装程序会自动配置Path环境变量
-
- SVN仓库配置
- 为什么要配置SVN仓库?答:为了给版本信息找一个家,保存客户端上传的各个版本的文件。
- 步骤:
- 创建一个目录作为版本库根目录:要求全英文无空格。
例如:D:\DevRepository\svnRep - 创建版本库
- 创建一个目录作为版本库根目录:要求全英文无空格。
使用命令:
svnadmin create D:\DevRepository\svnRep\AtguiguERP注意:具体仓库应与具体项目有关,例如仓库AtguiguERP将对应一个名为AtguiguERP的项目,OA对应一个名为OA的项目,ERP将对应一个名为ERP的项目。项目名和仓库目录名不需要一致,但存在上述对应关系。换句话说只有在版本库中进一步指定与项目对应的一个目录,才能让SVN服务器可以为不同项目服务,否则如果让SVN服务器只能支持一个项目就太浪费资源了。
- 如果操作成功[D:\DevRepository\svnRep\AtguiguERP]目录下会出现四个文件夹两个文件
-
- 启动SVN服务
SVN服务器仅仅安装和配置好是不够的,还需要让它运行起来,才能响应客户端请求。启动SVN服务器有两种方式,命令行方式和注册服务的方式
- 命令行方式
①svnserve -d -r 文档仓库路径[-d表示后台执行 -r表示版本库的根目录]
如:svnserve -d -r D:\DevRepository\svnRep\AtguiguERP
②如何验证svn服务器已经启动?SVN服务监听3690端口,打开一个新的cmd窗口,使用netstat -an 命令查看3690端口是否被监听
-
③运行svnserve的cmd窗口关闭后,对应的svn服务就会被停止
- 注册Windows服务
①利用XP、2000以上系统自带工具Service Control,执行文件是sc.exe
②注册服务命令:
i.命令格式:
sc create 要创建的服务名 binpath= "SVN安装目录\bin\svnserve.exe --service -r 版本库目录" displayname= "要创建的服务名" start= auto depend= Tcpip
例如:
[单仓库方式]
sc create SVN-Service binpath= " D:\DevInstall\Subversion\bin\svnserve.exe --service -r D:\DevRepository\svnRep\AtguiguERP" displayname= " SVN-Service" start= auto depend= Tcpip[多仓库方式]
sc create SVN-Service binpath= " D:\DevInstall\Subversion\bin\svnserve.exe --service -r D:\DevRepository\svnRep " displayname= " SVN-Service" start= auto depend= Tcpipii.说明:binpath 指定svnserve的路径和命令 -r 版本库的路径。start= auto 表示服务自动启动。
iii.切记:“=”左边没有空格,“=”右边一定要有一个空格!
iv.对于Windows7及以上系统,在命令行中直接运行上述命令会返回错误提示[SC] OpenSCManager 失败 5:原因是没有权限。
有两种方法可以解决:一是以管理员身份运行cmd程序,二是将命令保存到批处理文件中,再以管理员身份运行。
v.关于“单仓库”和“多仓库”
版本库目录结构是“根目录”下设置具体的“项目目录”,而我们使用svnadmin create命令创建版本库时使用的是具体的“项目目录”。这样一来,与版本库相关的文件就会放到“项目目录”下。
-
在注册SVN服务的命令中,如果版本库路径指向的是具体的“项目目录”,例如:D:\DevRepository\svnRep\AtguiguERP,则注册的服务将只能为AtguiguERP这个目录对应的项目服务,这种方式我们称之为:“单仓库”;而如果指定版本库目录时仅指定根目录,例如D:\DevRepository\svnRep,则注册的服务可以根据访问地址判断客户端请求的是哪个项目目录,这种方式我们称之为:“多仓库”。
指定为根目录则配置为多仓库[推荐]
指定方式:-r D:\DevRepository\svnRep
访问方式svn://localhost/AtguiguERP
这样SVN服务器就可以服务于很多个项目
指定为一个具体的仓库则为单仓库
指定方式:-r D:\DevRepository\svnRep \AtguiguERP
访问方式svn://localhost
这样虽然访问方式简单,但整个SVN服务器只能为一个项目提供服务,浪费资源
vi.启动服务net start SVN-Service[Win7以上系统同样需要管理员权限]
vii.其它相关命令:
sc query SVN-Service查询当前服务状态
sc stop SVN-Service停止服务
sc delete SVN-service删除服务,注意:删除服务之前先停止服务
- SVN仓库配置
本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。