前几天给实验室搭建了一个内部测试的开发环境,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. ubuntu 下通过ftp命令下载文件

    /*连接*/ $ ftp 192.168.180.2Connected to 192.168.180.2.Name (192.168.180.2:rivsidn): admin  Password: ...

  2. Spring 属性注入(二)BeanWrapper 结构

    Spring 属性注入(二)BeanWrapper 结构 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) BeanWrap ...

  3. nginx域名转发 负载均衡 反向代理

    公司有三台机器在机房,因为IP不够用,肯定要分出来,所以要建立单IP 多域名的反向代理, 就是当请求www.abc.com 跳转到本机, 请求www.bbc.com 跳转到192.168.0.35 机 ...

  4. 第一个spring boot 程序

    安装.运行.预览省略 错误1:8080端口被IIS占用,关闭它 Description: The Tomcat connector configured to listen on port 8080 ...

  5. 51nod1347 旋转字符串

    题目很容易懂,只要进行几次简单的判断就能完成此题,显示判断是否为偶数,之后利用sustr截取两个字符串进行比较,代码如下 #include<iostream> #include<st ...

  6. SharePoint 开发小结

    目标:将sharepoint网站对接Office 365 最直接的API:How to: Add Office 365 APIs to a Visual Studio project http://m ...

  7. Keras的泰坦尼克号的生存率的数据分析

      # coding: utf-8 # In[1]: import urllib.request import os # In[2]: url="http://biostat.mc.vand ...

  8. day08作业---函数

    '''2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者.'''#学会了 原来 range(len(iter)) 是 从零到len-1 的数的组合 建新放在 ...

  9. Codeforces Round #543 (Div. 2) D 双指针 + 模拟

    https://codeforces.com/contest/1121/problem/D 题意 给你一个m(<=5e5)个数的序列,选择删除某些数,使得剩下的数按每组k个数以此分成n组(n*k ...

  10. 证明解析函数u=c1 与 v=c2 正交

    方程u(x,y)=c1对应平面上的曲线, 求导dy/dx=  -ux/uy   类似有v曲线的dy/dx=-vx/vy   两者相乘,使用柯西-黎曼方程结果是-1 表示在相交点两者的切线互相垂直. 另 ...