• svn+post-commit实现自动部署(转)


    一、安装
    #yum install subversion
    检查是否安装了svn
    #subversion –v
    创建svn库和对应的目录
    #mkdir /svn/www.test.com
    #svnadmin create /svn/www.test.com
    二、配置
    创建登录svn的用户和密码
    #vim /svn/www.test.com/conf/passwd
    [users]
    用户名=密码
    设置svn用户权限
    #vim /svn/www.test.com/conf/authz
    [/]
    用户名=rw
    设置svn主配置文件
    #vim /svn/www.test.com/conf/
    anon-access=none #使非授权用户无法访问
    auth-access=write #使授权用户有写权限
    password-db=password
    authz-db=authz #启用访问控制文件
    realm=/svn/www.test.com #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
    启用svn:#svnserve –d –r /svn/www.test.com
    注可以用—listen-port 参数修改svn的端口
    三、连接svn
    1、linux主机连接svn
    #svn co svn://192.168.1.180
    输入用户名和密码后就可以将svn上的数据下载到本地。
    2、windows主机连接svn
    利用TortoiseSVN工具进行连接。
    四、利用svn的post-commit将svn服务器的文件同步更新到固定的目录
    #cd /svn/www.test.com/hooks
    #cp post-commit.tmpl post-commit
    #chmod a+x post-commit
    编辑post-commit钩子脚本
    #vim post-commit
    export LANG=zh_CN.UTF-8 #设定环境变量,如果没有设定可能会出现update报错
    SVN=/usr/bin/svn
    WEB=/usr/local/apache/htdocs/192.168.1.180
    ${SVN} update ${WEB} --username rsync --password rsync
    注:WEB中指定的目录不能为空目录,需要先checkout
     
    报错注解,及解决办法:
    1、
    svn: Error converting entry in directory '/usr/local/apache/htdocs/192.168.1.180' to UTF-8
    svn: Can't convert string from native encoding to 'UTF-8':
    svn: ?229?164?141?228?187?182 ?229?164?141?228?187?182 ?229?164?141?228?187?182 ?229?164?141?228?187?182 rsync-3.0.9.tar.gz
    原因:svn服务器上的文件存在编码为UTF-8的文件,如果服务器不支持UTF-8编码就会报这个错误。
    解决办法:在post-commit钩子脚本中,添加export LANG=zh_CN.UTF-8字段,更改环境变量中的编码。
    2、
    Skipped '/usr/local/apache/htdocs/192.168.1.180'
    这个时候使用命令svn update命令会提示
    Skipped ‘.’
    原因:192.168.1.180是一个空目录或这个目录不存在
    解决办法:先进行手工的checkout,之后再post-commit中将目录指定到checkout的目录,就解决了。
     
     
    转自:http://blog.51cto.com/songknight/742725
  • 相关阅读:
    url protocol
    wpf webbrowser取消js报错
    c#端口扫描器wpf+socket
    c#协变 抗变
    MTK刷机快捷键
    iTextCharp c#
    wince可用的7-zip
    直播平台搭建与相关资料
    pyinstall
    面向对象常见的术语
  • 原文地址:https://www.cnblogs.com/kilometerwine/p/9871299.html
Copyright © 2020-2023  润新知