Linux下SVN配置hook经验总结
前几天给实验室搭建了一个内部测试的开发环境,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经验总结的更多相关文章
- linux 下 svn配置;以及多仓库配置
http://www.linuxidc.com/Linux/2016-01/127679.htm https://blog.csdn.net/mrwu9902/article/details/7869 ...
- Linux下SVN配置
1.安装svnyum install subversion 2.创建版本库fengyu(版本库的名字取来和你web项目的名字相同,否则你在服务器检出后会变成web项目里还有一层版本库的目录,里面才是项 ...
- Linux下SVN服务器安装配置及客户端安装说明
原文地址:http://wenku.baidu.com/link?url=h3dVAMx4azpOXEND5HQEE6nliE8-zc0GSQ03yv4cUs1vXMALXF64UsK7kT7kXm_ ...
- 转载-Linux下svn搭建配置流程
Linux下svn搭建配置流程 一. 源文件编译安装.源文件共两个,为: 1. 下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...
- Linux下SVN服务器搭建配置
Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...
- linux下svn的安装与配置
---恢复内容开始--- linux下svn的安装与配置 Linux发行版本:CentOS6.5 1.安装subversion sudo yum -y install subversion 2.创建s ...
- linux下svn(subversion)服务端添加工程及配置权限
linux下svn(subversion)服务端添加工程及配置权限 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/9010507.html 此篇我只是将所做过的 ...
- Linux下SVN server 的使用及权限配置
[Linux下SVN server 的使用及权限配置] 参考:http://www.cnblogs.com/heinoc/p/3805779.html
- linux下安装配置svn服务器
linux下安装配置svn服务器 1. svn服务器安装 将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz传到服务器. tar xfvz su ...
随机推荐
- NETSHARP的JAVA开发环境配置
一:JAVA配置 1. netsharp使用java1.8/1.7版本,本文使用1.8版本 2.jdk下载地址:http://www.oracle.com/technetwork/java/javas ...
- .NET TCP协议之TcpClient与TcpListener交互
问题:手机某项功能服务需要采用TCP协议与第三方交互通信.需先在公司内部测试此功能. 原因:第三方没有任何消息返回,也没有客服提供服务. 解决方法:公司内部做一个TCP协议服务器端,根据外网ip+端口 ...
- 【搜索】棋盘问题(DFS)
Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子 ...
- chattr改变文件属性
Linux chattr命令用于改变文件属性. 这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式: a:让文件或目录仅供附加用途. b:不更新文件或目录的最后存取时间. ...
- idea下启动tomcat时,打印的日志中文乱码
idea2018.2+tomcat8+java8+win10 异常:将编码方式全都修改为UTF-8后,且tomcat的VM启动参数中配置了:-Dfile.encoding=UTF-8.导致控制台日志打 ...
- java中正则表达式常用方法
一.匹配 String matches()方法.用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false. 举例: public static void checkQQ(){ Stri ...
- MODULE_DEVICE_TABLE 的作用
pci_device_id,PCI设备类型的标识符.在include/linux/mod_devicetable.h头文件中定义.struct pci_device_id { __u32 ...
- keras model.compile(loss='目标函数 ', optimizer='adam', metrics=['accuracy'])
深度学习笔记 目标函数的总结与整理 目标函数,或称损失函数,是网络中的性能函数,也是编译一个模型必须的两个参数之一.由于损失函数种类众多,下面以keras官网手册的为例. 在官方keras.io里 ...
- base_expr +: width_expr
在Verilog-1995中,可以选择向量的任一位输出,也可以选择向量的连续几位输出,不过此时连续几位的始 末数值的index需要是常量.而在Verilog-2001中,可以用变量作为index,进行 ...
- MySQL中@变量的妙用
背景需求:如下图所示,需要将下面为空的字段值,填充为第一行所示的值 第一次处理失败了 第二次使用成功 使用的SQL语句如下: set @tmp_var=''; select b.id,b.table_ ...