前几天给实验室搭建了一个内部测试的开发环境,LAMP、svn提交以及自动部署。

之前没干过这事儿,到最终搞定还是颇费了些周折。总结一下我的经验,主要是hook的自动执行问题。

拿我的post-commit 脚本来说,以下是示例代码:

#!/bin/sh
SVN=/usr/bin/svn
WEB=/var/www/testsite
LOG=/home/svn/testsite/hooks/code_deploy_log
export LANG=zh_CN.UTF-8
CURDATE=`date`
echo "Code Deployed at $CURDATE" >> $LOG
$SVN update --username ×××× --password ×××× $WEB >> $LOG
chmod -R 777 $WEB >> $LOG

首先是脚本头部,在Ubuntu下不需要声明,而在CentOS下需要声明,参考当前目录下的 .tmpl模板文件

然后是其中所涉及的命令可能需要写上绝对路径

可以用命令

whereis commond

查看该命令的绝对路径。

如果你是用我这种方法实现自动部署的,那么提交代码之前需要在你的部署环境下co一次,post-commit脚本才可能顺利执行。

不过,调试过程中没有那么顺利,日志文件中有显示日期,说明脚本顺利执行了,不过并没有真正update到web目录。

原因是这样的,你如果用可登录帐户执行update系统会询问你是否保存密码,而在后台运行的svn可没有这个交互机会,于是你需要给svnserve指定一个运行用户,并修改该用户的配置文件让其不自动保存密码。

例如:

su - root -c "svnserve -d -r /home/svn"

是以root用户deamon模式并设置 /home/svn 为根目录启动svn服务
这样只需要修改root用户目录下,修改 .subversion/servers 文件如下两行(即去掉默认前面的注释)

store-passwords = no
store-plaintext-passwords = no

post-commit脚本就能顺利执行了!

Linux下SVN配置hook经验总结的更多相关文章

  1. linux 下 svn配置;以及多仓库配置

    http://www.linuxidc.com/Linux/2016-01/127679.htm https://blog.csdn.net/mrwu9902/article/details/7869 ...

  2. Linux下SVN配置

    1.安装svnyum install subversion 2.创建版本库fengyu(版本库的名字取来和你web项目的名字相同,否则你在服务器检出后会变成web项目里还有一层版本库的目录,里面才是项 ...

  3. Linux下SVN服务器安装配置及客户端安装说明

    原文地址:http://wenku.baidu.com/link?url=h3dVAMx4azpOXEND5HQEE6nliE8-zc0GSQ03yv4cUs1vXMALXF64UsK7kT7kXm_ ...

  4. 转载-Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  5. Linux下SVN服务器搭建配置

    Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...

  6. linux下svn的安装与配置

    ---恢复内容开始--- linux下svn的安装与配置 Linux发行版本:CentOS6.5 1.安装subversion sudo yum -y install subversion 2.创建s ...

  7. linux下svn(subversion)服务端添加工程及配置权限

    linux下svn(subversion)服务端添加工程及配置权限 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/9010507.html 此篇我只是将所做过的 ...

  8. Linux下SVN server 的使用及权限配置

    [Linux下SVN server 的使用及权限配置] 参考:http://www.cnblogs.com/heinoc/p/3805779.html

  9. linux下安装配置svn服务器

    linux下安装配置svn服务器 1. svn服务器安装 将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz传到服务器. tar xfvz su ...

随机推荐

  1. NC 日志文件注册

    在实际开发中,例如接口向外系统发送数据,这些数据前台看不到,一般都是记录日志,然后在后台日志文件中查看.但是,用系统原本日志文件来看,有时会记录一些别的模块日志信息.所以,我们可以注册个自己的模块日志 ...

  2. L与_T

    https://www.cnblogs.com/xxn-180727/p/9378519.html _T( ) 是一个适配的宏,当工程采用Unicode字符时 _T()就是 L,会将多字节的字符串转化 ...

  3. Python压缩文件夹 tar.gz .zip

    打包压缩生成 XXX.tar.gz 文件 import os import tarfile if os.path.exists(outputFileName): with tarfile.open(o ...

  4. Vuebnb 一个用 vue.js + Laravel 构建的全栈应用

    今年我一直在写一本新书叫全栈Vue网站开发:Vue.js,Vuex和Laravel.它会在Packt出版社在2018年初出版. 这本书是围绕着一个案例研究项目,Vuebnb,简单克隆Airbnb.在这 ...

  5. urllib和requests库

    目录 1. Python3 使用urllib库请求网络 1.1 基于urllib库的GET请求 1.2 使用User-Agent伪装后请求网站 1.3 基于urllib库的POST请求,并用Cooki ...

  6. idea+tomcat 端口占用

    ntelliJ IDEA和Tomcat整合注意事项(转) 这两天一直在学习IDEA这个开发工具,今天再整合tomcat的时候遇到了问题,运行时总是报错,说是8080端口被占用,把我就搞的郁闷了,我就尝 ...

  7. 如何安全管理windows系统日志,windows系统日志的报表和告警

    如何安全管理windows系统日志,windows系统日志的报表和告警 无论大小,每个拥有IT基础设施的组织都容易发生内部安全攻击.您的损失等同于黑客的收益:访问机密数据.滥用检索到的信息.系统崩溃, ...

  8. ubuntu下安装/卸载vmware虚拟机

    1.下载vmware(官网下载试用版,试用版输入序列号后即为专业版,序列号网上搜,很多) 2.下载后安装(命令行) 1)cd进你下载的位置 1.1)下载的文件名字为:VMware-Workstatio ...

  9. python里面的数学

    一.基本运算符 1.算数运算 2.比较运算 特殊情况:!= 不等于 新版本不支持 <> 不等号 3.赋值运算 4.逻辑运算 not : 非   非真即假,非假即真.   - and : 并 ...

  10. 有关PHP 10条有用的建议--转(柒捌玖零)

    1.使用ip2long() 和long2ip()函数来把IP地址转化成整型存储到数据库里. 这种方法把存储空间降到了接近四分之一(char(15)的15个字节对整形的4个字节),计算一个特定的地址是不 ...