配置hooks使svn提交后自动同步客户端代码(客户端与服务端在同一台机器上)
1、配置svn的hooks
2、实例演示
1、配置svn的hooks
1.1)配置情况
承接上篇svn搭建的文章,今次继续使用上篇文章的配置
上篇文章的地址:linux下搭建svn代码库
svn仓库所在的目录为/opt/svn/firsttest
1.2)修改hooks文件post-commit
我们的任务需求是:当firsttest代码仓库有任何人提交了代码之后,本机器上的某个位置的副本就需要立刻进行svn up操作,这样达到副本的内容和代码仓库的内容相同,可以实时看到情况的目的。
根据上述的要求,分析下来就是,当有人在 firsttest 提交了代码之后,我们的副本也需要进行更新。所以,我们需要修改的hooks文件就是firsttest/hooks/post-commit。
查看firsttest/hooks/目录下面的文件:
- # ls
- post-commit.tmpl post-unlock.tmpl pre-revprop-change.tmpl
- post-lock.tmpl pre-commit.tmpl pre-unlock.tmpl
- post-revprop-change.tmpl pre-lock.tmpl start-commit.tmpl
并没有发现 post-commit 文件,但是可以发现有个 post-commit.tmpl 文件,我们需要做的就是把这个文件重命名成post-commit,或者拷贝一份副本,起个名字叫post-commit。
- # cp post-commit.tmpl post-commit
- root@OutRoot:hooks# ls
- post-commit post-revprop-change.tmpl pre-lock.tmpl start-commit.tmpl
- post-commit.tmpl post-unlock.tmpl pre-revprop-change.tmpl
- post-lock.tmpl pre-commit.tmpl pre-unlock.tmpl
现在有 post-commit 文件了,但是还差点儿,把它的权限改为775:
- # chmod post-commit
- root@OutRoot:hooks# ls
- post-commit post-revprop-change.tmpl pre-lock.tmpl start-commit.tmpl
- post-commit.tmpl post-unlock.tmpl pre-revprop-change.tmpl
- post-lock.tmpl pre-commit.tmpl pre-unlock.tmpl
# ls -al post-commit
-rwxrwxr-x 1 root root 1977 06-05 13:47 post-commit
1.3)编辑 hooks 文件 post-commit
从 post-commit 的文件名我们就可以看出,是在 commit(合入代码)之后(post)所进行的操作。
以下是 post-commit 文件的前几行:
- #!/bin/sh
- # POST-COMMIT HOOK
- #
- # The post-commit hook is invoked after a commit. Subversion runs
- # this hook by invoking a program (script, executable, binary, etc.)
- # named 'post-commit' (for which this file is a template) with the
- # following ordered arguments:
看英文的大概意思是:post-commit 钩子文件是在执行完一次commit之后执行的。这个hook会执行一个脚本或者可执行文件、二进制文件等。
那么我们就在这里写上我们需要svn执行的脚本。
把 post-commit 文件的最后几行改成如下内容:
- REPOS="$1"
- REV="$2"
- #mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
- su -c 'svn up /home/test/workspace/firsttest' test
其中“su -c 'svn up /home/test/workspace/firsttest' test”这句话的意思是:
切换到test账户,就是你的svn副本是哪个账户就切换到哪个账户,要是root就直接运行“svn up /home/test/workspace/firsttest”就可以了。
之所以要切换账户,是因为在svn进行update操作的时候会对副本里面的.svn目录下的内容进行修改,有可能会添加新的文件或目录,这样会导致之后的副本里面使用非root账户操作的时候失败。
2、实例演示
好累,就先不写了吧。。。
配置hooks使svn提交后自动同步客户端代码(客户端与服务端在同一台机器上)的更多相关文章
- Centos6.8实现SVN提交后自动更新目录
1.创建svn目录 mkdir /var/www/project 2.从服务器的本地svn上checkout最新版本代码到www目录下的project文件夹,注意本地svn服务器地址和端口号是在启动s ...
- SVN提交后自动推送消息到钉钉群
钉钉设置机器人配置 1.进入配置机器人入口 2.添加机器人 3.测试WebHook请求 本人使用Postman进行测试 4.配置SVN 4.1 配置 Pre-commit hook 设置提交内容必须包 ...
- [钉钉通知系列]SVN提交后自动推送消息到钉钉群
钉钉设置机器人配置 1.进入配置机器人入口 2.添加机器人 3.测试WebHook请求 本人使用Postman进行测试 4.配置SVN 4.1 配置 Pre-commit hook 设置提交内容必须包 ...
- svn版本库更新后自动同步到www
注意:www目录一定要用SVN服务器 checkout出Repositories的代码 步骤: (1)新建www根目录 mkdir -p /data/www/lehuo (2)在www根目录下检出(c ...
- svn 备份后双机同步热备失效,提示 W200007 target server does not support atomic revision property edits svynsync:E170009
svn 备份后双机同步热备失效,提示 W200007 target server does not support atomic revision property edits; consider u ...
- Xcode: Run Script 的运用, 使build打包后自动+1
背景: 每次打包都要build+1处理,比较麻烦,使用 Run Script 的运用使build打包后自动+1 0. 使用xcode 添加run Script 然后就可以添加Run Script了 1 ...
- svn提交后 添加注释
svn 提交后添加注释 第一步: 第二步: 第三步:提交就可以了. 注意:如果svn服务器管理员没有激活pre-revprop-change这个hook,会出现 需要让svn服务器管理员没有激活pre ...
- inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效
inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...
- Git 在同一台机器上配置多个Git帐号
在同一台机器上配置多个Git帐号 By:授客 QQ:1033553122 实践环境 win10 Git-2.21.0-64-bit.exe TortoiseGit-2.8.0.0-64bit.msi ...
随机推荐
- js特效
1.轮播换图 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- Mysql常用命令详解
Mysql安装目录 数据库目录 /var/lib/mysql/ 配置文件 /usr/share/mysql(mysql.server命令及配置文件) 相关命令 /usr/bin(mysqladmin ...
- 第九篇:在SOUI中使用多语言翻译
为UI在不同地区显示不同的语言是产品国际化的一个重要要求. 在SOUI中实现了一套类似QT的多语言翻译机制:布局XML不需要调整,程序代码也不需要调整,只需要为不同地区的用户提供不同的语言翻译文件即可 ...
- 外键为','(逗号)拼接ID,连接查询外键表ID
select distinct pipeId=substring(a.PipeIn,b.number,charindex(',',a.PipeIn+',',b.number)-b.number) fr ...
- Intent界面跳转与传递数据
Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据. intent可以激活Activity,服务,广播三类组件. 本博文讲的是显示意图激活Activity组件 ...
- 如何通过java代码对kylin进行cube build
通常是用于增量 代码如下: package com.dlht.kylinDemo; import java.io.BufferedReader; import java.io.FileNotFound ...
- JMeter正则表达式-学习(3)
同时关联多个值的方法: { : ", : "results": : [ : : { : : : "total_earnings":"&quo ...
- HTML轉PDF - 使用Pechkin套件
剛好跟人討論到HTML轉PDF需求,便對工具進行簡單評估以備不時之需. 網路上比較多人推的是WkHtmlToPdf,如果是用.NET開發,已經有人包成NuGet套件,直接搜尋pechkin就可找到,它 ...
- 廖雪峰教程笔记:js中map和reduce的用法
举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个数组[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map实现如下: 由于map()方法定义在JavaScript的 ...
- nefu1118 最长上升子序列(LIS)
discription:定义臻.排序数列如下:一个数列删去其中一个数后是从小到大排好序的,称这个数列为臻.排序数列.现在给你一个数列,判断它是否为臻.排序数列. intput:多组输入数据,每组有两行 ...