使用PHP建立SVN的远程钩子,使用exec命令自动更新SVN的代码
2019独角兽企业重金招聘Python工程师标准>>>
本操作需要使用到php执行sudo命令的权限,相关设置可以参考:
apache/Nginx下的PHP/Ruby执行sudo权限的系统命令
通过Svn的钩子功能,可以在我们执行SVN操作时,同时自动执行一些操作,比较常见的操作有:
1,本地更新并提交代码时,在测试环境或者线上环境同时将代码更新到最新版
2,在更新Svn时,如果有数据库相关的操作,可以同时将SQL发给远程钩子程序执行相关的SQL
这个实例是我们项目组用到的一个片段,实现在本地开发代码测试通过以后,往线上提交SVN时,自动将代码更新到线上,或者执行导出打包的工作
<?php
//先切换到程序部署的目录
$path = dirname(__FILE__);
exec("cd {$path}");exec("sudo /usr/bin/svn up", $output);
print_r($output);
这里需要将apache加入sudoer组
为此,修改sudo配置文件,直接键如visudo命令编辑配置文件:
1. 注释Defaults requiretty
Defaults requiretty修改为 #Defaults requiretty, 表示不需要控制终端。
否则会出现sudo: sorry, you must have a tty to run sudo
2. 增加行 Defaults visiblepw
否则会出现 sudo: no tty present and no askpass program specified
3. 赋予apache用户执行svn权限
如,增加行:apache ALL=(ALL) NOPASSWD: /usr/bin/svn
注:NOPASSWD可以使在命令执行时不需要交互输入apache用户的密码
最后一步,即在SVN钩子中添加提交SVN时,自动访问远程链接“http://www.4wei.cn/yoursvnfile.php”
转载于:https://my.oschina.net/u/998304/blog/516637
使用PHP建立SVN的远程钩子,使用exec命令自动更新SVN的代码相关推荐
- 自动 更新SVN目录文件.bat
将以下代码部分拷贝至 "自动 更新SVN目录文件.bat"保存,并放在需要常更新的SVN目录下 ==========自动 更新SVN目录文件.bat================ ...
- 利用SVN的post-commit钩子实现多项目自动同步
svn的post-commit钩子脚本在每次提交(commit)之后运行,我们可以在这个脚本里实现一些比较实用的功能,比如发送邮件提醒.自动备份版本库,自动同步代码到web服务器等. 这里用post- ...
- python svn模块_使用Python实现一键批量更新SVN/Git模块的脚本
现在我们开发的过程中,大都是模块化的工作方式,咱们的工程源码结构就是N个模块,N个SVN/Git地址,如果需要更新就得手动一个个的操作,弄起来实在太麻烦了,之前我都是写批处理来实现批量更新的,现在来使 ...
- java svn 版本号_eclipse中的Java文件自动根据svn版本号生成注释
经常在java代码中看到以下的注释($Rev: $Date),是不是很酷,怎么生成的呢? /** * A FilterChain is an object provided by the servle ...
- SVN 使用hooks 自动更新到远程的web目录下
为什么80%的码农都做不了架构师?>>> 环境: A机器192.168.1.10 作为SVN的服务端 (环境 apache svn ssh) 环境: B机器 192. ...
- git主要命令 及与svn的对比
场景 Svn Git 1 下载代码 svn checkout git clone 2 加入版本控制 svn add git add 3 本地提交 - git commit 4 提交到服务器 svn c ...
- 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)...
一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp) 程序员的生活要一切自动化,更要幸福^_^. 转载请注明出处http: ...
- (转)一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)...
转自:http://www.cnblogs.com/mrblue/p/3885043.html 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码 ...
- unity多人开发,更新svn后材质丢失(模型贴图全变紫)的问题
关于这个问题,以下的内容是通过询问的方式了解到的,不能百分百确定原理就是这样,发出来可供参考. 导致问题的原因: unity工程中的的meta文件和guidmapper(在Library中)是对应的, ...
最新文章
- 【Java面试题视频讲解】字符个数统计
- 语言nomogram校准曲线图_医学统计与R语言:Meta 回归作图(Meta regression Plot)
- 《Arduino实战》——2.5 小结
- 6.携程架构实践 --- 数据库
- 文件加密新招--WinRAR文件加密(上)
- 差分贴片晶振使最强军事武器出世
- 图像校色 白平衡调整
- 普通人的第一个Linux发行版-安装Deepin20.5
- 劳动与社会保障法-作业
- 网上商城所需软硬件架构分析
- SSH-keygen linux教程
- linux cp 性能,linux性能监控以及优化之CPU
- 小程序微信授权登录服务器异常,微信小程序授权登录流程(强制绑定手机号码)...
- aix xmanager oracle,AIX上启动xmanager界面
- 微信小程序常见面试题
- 微信上线新功能 看到这个提醒一定要接听
- 2021-基于深度学习的人脸检测综述文献-摘要
- poj 3208 Apocalypse Someday(数位dp)
- python实现PDF文件合并操作,附可直接使用的exe文件
- 服务器凌晨莫名奇妙自动重启解决方案
热门文章
- java parseint(12.0),如何实现一个parseInt
- mysql数据库管理系统模式_MYSQL命令行模式管理MySql的一点心得
- 骁龙660是32位还是64位_微软公布v2004最低处理器要求,放弃32位系统,你的CPU还能支持吗?...
- hbase 按时刻查询_Hbase查询工具类,根据时间查询数据
- linux下c代码调用.so,Linux下C程序调用.so(动态链)的一个例子
- a33 linux内核启动网卡,a33核心板启动问题 - nevermore1981的个人空间 - OSCHINA - 中文开源技术交流社区...
- 指针 是否相同_算法一招鲜——双指针问题
- linux开发板 pc 通讯_从51单片机到Linux 开发板运行hello world(教程4)
- python测验5 函数和代码_测验5: 函数和代码复用 (第5周)-单选题
- 释放tcp连接的命令是_最实用的6个网络命令,网络故障不求人