版本控制器SVN

二、SVN服务器端安装与配置

  • 服务端程序安装
    • 安装Setup-Subversion-1.6.5.msi
    • Win7及以上系统此处需要确认权限


      • 安装程序会自动配置Path环境变量
        D:\DEVINSTALL\SUBVERSION\BIN;

      验证是否安装成功
      在命令行输入:svnserve --version
      看到如下信息就表示服务器端程序安装成功

      • 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= Tcpip

        ii.说明: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删除服务,注意:删除服务之前先停止服务

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。