zoukankan      html  css  js  c++  java
  • LNMP创建svn版本控制

    1、安装subversion服务端

      yum install subversion

    2、查看是否安装成功

      rpm -ql subversion      (可以查看到安装位置则安装成功)

    3、创建svn版本库目录(下面以创建的svnrepos目录为案例)

      mkdir -p /var/svn/svnrepos    (目录自己指定 )

    4、创建版本库 

      svnadmin create /var/svn/svnrepos

      执行完之后生成conf、db、format、hooks、locks、readme.txt 这几个文件 

    5、进入conf目录 

      authz      文件是权限控制文件 
      passwd           帐号密码文件 
      svnserve.conf   svn服务配置文件  

    6、设置帐号密码 

      vim passwd 
      在[users]块中添加用户和密码,格式:帐号=密码,如 myname=123 

    7、设置权限 

      vim authz 
      在末尾添加如下代码: 
      [/]         #说明:用户权限从coinhello版本库目录起有效(最好 [] 内也不要有空格,有时候会报错Authentication failed)
      myname=rw     #说明:配置用户的读写权限  如果前面有空格存在,将会在svn checkout操作的时候报错:Invalid authz configuration

      意思是版本库的根目录刚才的用户名myname对其有读写权限。 

    8、修改svnserve.conf文件 

      vim svnserve.conf 
      打开这几个注释: 
      anon-access = read (none可以看到提交信息)
      auth-access = write   (必须顶格写,前面不能有空格) 
      password-db = passwd 
      authz-db=authz 
      realm=/var/svn/svnrepos 这个修改成刚才创建的版本库 

    9、启动svn版本库 

      svnserve -d -r /var/svn/svnrepos  

      (多版本为启动/var/svn,即外层)

      (尤其要注意不然会出现checkout时,提示:URL svn://192.**.**.**/svntest doesn't exist这一类错误)

    10、利用svn的post-commit将svn服务器的文件同步到固定的目录 

      cd /var/svn/svnrepos/hooks
      cp post-commit.tmpl post-commit
      chmod a+x post-commit 
      编辑post-commit钩子脚本 
      vim post-commit 修改里面的如下内容 
        export LANG=zh_CN.UTF-8 
        SVN=/usr/bin/svn    这个是安装好的时候查看成功与否看到的那个目录(等号两边不能有空格)
        WEB=/home/myweb    这个就是你每次完成提交svn自动提交到的那个目录(等号两边不能有空格)
        ${SVN} update ${WEB} --username myname( 你刚才设置的用户名 ) --password 123( 你刚才设置的密码) 

      第一次检出生成 .svn 文件夹很重要,下面有两个方法检出

      windows检出:右键菜单里有“svn checkout”功能,单击然后输入地址: svn://120.77.xxx.xxx/svnrepos  ,接着输入用户和密码,这样就完成了创建项目版本库和导出项目

      linux检出:

        方法一:就是你需要切换到/home/myweb (你指定svn自动提交的那个目录)下面手动进行一次checkout:(命令行为后面那个) svn co svn://localhost(会在刚才的/home/web生成一个localhost文件夹) (多版本库为svn co svn://localhost/svnrepos(版本库名称))

          用ftp工具到/home/myweb/localhost (如果是多版本库,则为版本库名称)下面把里面的.svn放到你的/home/myweb里面这样以后只要从客户端提交代码就会自动同步到你的指定的目录了。

        方法二:用svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 检出 (下面有举例说明)

          svn  checkout  svn://120.77.xxx.xxx/svnrepos  /home/myweb/项目文件夹名(格式:svn  checkout  项目版本库路径  导出项目的存放路径)

    11、需要注意的地方

      1.需要在安全组那里配置3690端口

      2.//打开防火墙
        iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
        service iptables save

      3.所有配置文件里面的修改前面都不允许存在空格 比如 vim authz  空格[/] 

      4.在最后需要重启svnserve服务端

      关闭svn killall svnserve
      重启svn svnserve -d -r /var/svn/ (说明:-d 表示以守护进程打开,-r 指的是SVN版本库路径)
      查看svn ps -ef|grep svnserve

     

    希望大家共同进步,学习更多想学习的知识。
  • 相关阅读:
    cocos2d-x C++的do...while(0)另类使用方法
    C++ Virtual详解
    xcode5向APP store上传应用的时候注意点
    IOS7学习之路九(ios7自定义UIAlertView)
    IOS7学习之路八(iOS 禁止屏幕旋转的方法)
    Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy8 cannot be cast to XXX-------动态代理(proxy-target-class属性的意义)
    Maven支持第三方库大全
    EOS page问题
    EOS页面流参数传值问题
    XML中转义字符及使用
  • 原文地址:https://www.cnblogs.com/lyzaidxh/p/9957969.html
Copyright © 2011-2022 走看看