• SVN学习记录3


    SVN配置多仓库与权限控制

    1.配置多仓库

    在实际项目开发过程中,我们可能会同时开发多个项目,那么我们如何进行多项目监管呢?
    通过svnserve进行仓库监管,但是监管指令只能监管某一个文件夹,而不能同时监管多个仓库。
    答:可以通过监管WebAPP总目录来达到监管所有仓库的目的
    svnserve -d(后台运行) -r(监管目录) D:SoftwaresvnWebApp(项目总目录)
    a. 打开dos窗口,输入如下指令

    svn://localhost或ip地址来访问D:/svn/WebApp目录
    如果需要访问Shop项目,Wechat项目
    shop项目:svn://localhost/Shop
    Wechat项目:svn://localhost/Wechat

    2. 权限控制

    如果要使用权限控制有一个前提:必须先开启权限功能,在每一个conf文件夹,里面有三个文件. 
    authz:授权文件,告诉用户具有哪些权限;
    passwd文件:认证文件,标识当前svn系统中某个仓库具有哪些用户以及相应的密码;
    默认情况下,以上两个文件都是禁用的,如需要使用,首需要开启以上两个文件,打开svnserve.conf配置文件
    
    开启步骤如下:
    ①注释匿名用户的可读写权限

    ②开启认证文件与授权文件

     ③编写认证文件定义相关用户名和密码(打开conf下的passwd文件)

     ④编写授权文件(打开conf下的authz文件)

     

     ⑤测试

    a.(在D: est_demohtdocs中新建文件夹wangwu)然后在版本库浏览器时输入svn://localhost/Shop

    b.然后在wangwu文件夹下新建一个test.php并进行commit的时候会弹出如下界面

     c.输入在passwd和authz设定的用户密码即可上传成功

    SVN服务配置与管理

    1.配置自启动服务

    sc create SVNService binpath="D:Softwaresvninsvnserve.exe --service -r  D:SoftwaresvnWebApp" start= auto
    创建系统服务,服务名称SVNService

    ①打开dos环境(使用超级管理员运行)

    ②输入指令

     ③查看系统服务,启动SVNService服务,如果运行成功则代表开启了SVN监管服务.

    2.创建批处理文件

    启动服务 net start 服务名称
    停止服务 net stop 服务名称
    删除服务 sc delete 服务名称
    
    以上功能在实际开发中经常使用,所以可封装成.bat批处理文件

    SVN应用在真实的开发环境中

    1.SVN工作流程

     2. 钩子程序

    所谓钩子程序就是与一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的修改。
    默认情况下,钩子的子目录(版本仓库/hooks/)中包含各种版本库钩子模板
    post-commit.tmpl:事务完成后所触发的钩子程序
    钩子程序默认情况下可以采用批处理指令或shell指令来进行编写

    3. 通过批处理指令编写钩子程序

    ①指定svn服务端工作目录
    设置服务端SVN路径
    SET SVN="D:Softwaresvninsvn.exe"
    ②指定Web服务器工作目录
    设置服务端项目运行目录
    SET DIR="D:	est_demohtdocsShop"
    ③通过update指令实时更新数据到DIR目录中
    SVN update %DIR%

    4.具体使用步骤

    第一步:复制post-commit.tmpl为post-commit.bat文件
    第二部:填入相关批处理指令
    第三步:在D:	est_demohtdocs目录下创建Shop目录并更新SVN服务端数据到本地
    第四步:更新文件到SVN服务端,可以在Shop目录实时获取到最新数据
    第五步:可以通过虚拟主机形式直接访问
    做一枚奔跑的老少年!
  • 相关阅读:
    #pragma 预处理指令
    C++类继承中的构造函数和析构函数 调用顺序
    static_cast与dynamic_cast转换 最简单的理解
    std::map的insert和下标[]访问
    C++有没有string转化int的函数,怎样转换
    c++中在一个类中定义另一个只有带参数构造函数的类的对象
    c++二进制文件的读写
    C++ 包含头文件 和 宏的使用 和 条件编译
    C++ 前置声明 和 包含头文件 如何选择
    C语言 gets()和scanf()函数的区别
  • 原文地址:https://www.cnblogs.com/xiaoshayu520ly/p/11773210.html
Copyright © 2020-2023  润新知