首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用svn钩子hookspost-commit实现代码自动部署

目录中默认会几个对应操作的钩子模板,我们需要创建一个post-commit的文件。 2.新建post-commit,内容如下 #!...web(nginx)服务器上的数据是否更新来测试。...赋予post-commit文件可执行权限,文件第一行有没有#!/bin/sh,在Post-commit第一行不是#!/bin/sh开头也是出现255的 2.这样做,还有点问题。.../post-commit 进行代码的测试。必须要使用sudo su等命令切换到svn或者apache服务器运行用户下,用下面的方法进行测试 sudo ..../post-commit 这样,执行svn update 命令的用户就是svn或者apache服务器的运行用户,因此,我们需要保证代码的存放目录必须有对应用户的权限,否则,这个脚本是不能执行的。

2.4K30

linux svn钩子 svn同步当ftp用

好处,可以再提交更新时,同时同步更新指定目录下的文件。 我这里主要用在了同步web页面上。...test 检出文件并且重命名文件夹为test 第二步:在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】 添加脚本内容如下: #!...=/usr/bin/svn #svn可执行文件 STATIC_DIR=/opt/svntongbu/project #要同步更新的目录 ${SVN} update ${STATIC_DIR} --username..."wangzi" --password "wangzi" #如果是实时更新网页chown www:www 路径 第三步:让post-commit有执行的权限 chmod u+x post-commit...这里就已经完成了 问题:如果遇到post-commit失败退出代码127 试着用命令找下对应的路径并修改post-commit,命令 whereis svn  找出可执行的 svn的路径

7.5K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CentOS 6.5 x64安装svn

    如果新建项目的也指定为公共目录,只需要修改公共目录的文件,使用指定用户和密码,就可以访问其他相关项目。 在项目众多,人员权限统一的情况下,是很有必要的。...编辑钩子文件,默认post-commit文件不存在 vim /svndata/www/dts/hooks/post-commit 内容如下: #!...当客户端提交文件成功之后,会自动执行post-commit。将更新的代码检出到指定目录,保证提交的代码和服务器一致。...需要注意的是,不要直接在服务器的指定目录,这里是指/www/dts/ 编辑文件,否则客户端提交文件之后,提示文件冲突。.../ 再次执行命令 /usr/local/subversion/bin/svn update --username whh --password whh /www/dts/ 使用svn客户端上传代码测试

    58810

    SVN提交项目时提示 run svn cleanup to remove locks 怎么解决?

    节后总是遇到各式各样的问题好奇怪,今天遇到的问题是使用svn提交项目文件时提示“run 'svn cleanup' to remove locks”错误,节前是好用的,之前还特意写了一篇关于宝塔linux...面板搭建SVN控制系统的图文教程,所以功能插件是没有问题的,但是不知道为什么,节后上班提交项目就出现了这个提示,贴出完整的错误提示: post-commit hook failed (exit code...,百度翻译来帮你: 提交后挂钩失败(退出代码1),输出为: svn:E155004:工作副本“/www/wwwroot/llsy”已锁定。...svn:运行“svn清理”以删除锁(有关详细信息,请键入“svn帮助清理”) 这就明白了吧,就是说“llsy”这个目录已经被锁定了,无法上传和修改内容,按照百度搜索到的教程是在上传的时候勾选“Break...cleanup 首先进入提示错误锁定的目录,然后运行“svn cleanup”命令,虽说敲完命令也是没有任何提示,但是重新上传提交的时候正常了,提交成功,错误提示消失,至此问题已经解决。

    3.6K10

    SVN利用钩子post-commit自动更新到线上测试服务器

    使用svnadmin create 创建一个版本库: svnadmin create cqzn_server 每个版本库的目录下有一个hooks目录: # ls /home/svn/cqzn_server...cd  /home/svn/cqzn_server/hooks mv post-commit.tmpl post-commit 并且修改这个文件:如下内容 vim post-commit #Set variable...,自动生成的都在WEB的一个目录下,建议不要用–delete这个参数 上面这个程序就是这样,实现的是源服务器到目的服务器的更新和添加,而没有删除操作,WEB服务器的内容会多于源SVN的服务器的 场景二、...(而不是样式或者排版的)要用exclude这个参数 注意:这个参数的使用不用写绝对路径,只要目录名称就行 aa代表文件 aa/ 代表目录 ,缺点就是如果有多个子目录都是一样的名称那么这些名称就都不会被同步...SVN 如代码提交前查看是否有写日志,是否有tab,有将换成空格,是否有不允许上传的文件,是否有超过限制大小的文件等等。

    38810

    Ubuntu下SVN安装和配置

    ,表示启动成功 (如果使用Apache连接,则跳过下步) 8.局域网访问,checkout出来SVN库的文件 svn checkout svn://SvnIp地址/mypro 或者简写为: svn... ci 4、更新到某个版本 $ svn update -rm path  例如:$ svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。...$ svn update -r 200 test.php(将版本库中的文件test.php还原到版本200) $ svn update test.php(更新,于版本库同步。...四、同步更新 [勾子] 同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post-commit,利用post-commit到代码检出到SVN服务器的本地硬盘目录...2、同步命令rsync的具体参数使用 3、具有基个语言的编程能力bash python perl都可以实现 post-commit脚本 编辑文件:sudo vim /home/xiaozhe/svn

    2.7K70

    svn利用钩子脚本功能实现代码同步到web目录

    二、本地机器SVN自动更新 1. export方式(备份) 在使用svn客户端时,有可能需要对某一个版本进行本地备份,比如制作成压缩包进行发布,这时候需要从svn文件夹中提取出内容,去除.svn等隐藏的...最笨的方法拷贝一份出来,然后显示隐藏文件,把所有 .svn文件夹都删掉。...默认使用的shell类型是sh,最好改成bash,sh是bash的子集,centos中sh其实就是软链接到bash 3.update和export比较 update会生成一个隐藏.svn文件夹,这个文件夹是我们不需要的...三、svn实现远程机器自动更新 首先实现A机器通过ssh无密码登陆B机器, 修改A机器的post-commit文件 /usr/bin/ssh -l root 192.168.127.183 “/bin...版本库有提交请求的时候自动会执行post-commit脚本,post-commit脚本通过ssh让远程机器执行shell脚本自动更新svn。

    1.6K30

    配置SVN的hooks功能自动更新代码

    前言解读 用过SVN的小伙伴们,都应该知道hooks(钩子)这个功能,的确日常企业内部测试环境经常会用过这个“特殊”的功能,今天来聊一聊SVN hooks 为何而用?...传统的WEB网站代码发布基本依靠手工操作 大概的整个流程如下: 开发本地环境开发代码 提交SVN版本库 然后将本地环境代码使用工具上传至待发布目录 备份原WEB站点代码目录 发布新代码至WEB目录 基于这类重复操作的问题...配置文件 [root@centos hooks]# vim post-commit #!.../startup.sh 备注:SVN服务器与WEB在同一台服务器上,如果分开,配置是需要有所变化的,以上配置供参考,但方法与步骤相同 测试访问 首先我们在WEB站点目录下更新下当前的代码,这个更新的动作相当于将...接下来模拟开发修改相关代码文件,重新提交了代码至SVN版本库 ? ? ? 重新打开浏览器测试访问页面是否更新? ? 代码自动更新至WEB目录完成

    1.1K10

    CentOS7安装配置SVN及SVN Hook实战

    Apache Subversion(简称SVN,svn),一个开放源代码的版本控制系统;用来管理文档,程序代码等文档的版本;svn相对git来说有点古老,是一个中心控制的版本控制系统,时至今日仍有不少企业依然使用...svn做为代码等文档的管理服务; 今天我们就来先介绍下在CentOS7下安装部署svn服务与日常使用以及重点介绍svn的两个hooks使用; 2、环境介绍 Svn server:CentOS7.4_x64...;这个文件默认是shell可执行文件;也可以是其他语言写的可执行文件; 以下就是强制提交代码时需要填写信息的钩子,作为默认的模板放在svn数据根目录下~ [root@localhost ~]# cat...四、svn之post-commit钩子使用 1、post-commit钩子说明 post-commit钩子默认和pre-commit钩子一样是没有启用的(所有钩子函数默认都没有 启用);但默认都有一个模板...如图: 总结: 我们通过svn管理版本,可以实现提交,回溯版本的功能,通过svn hooks可以完成提交前的处理,和提交后的处理工作;这里只是抛砖引玉,一般中小企业可以使用,比如提交后结合 rsync把更新的内容推到前端服务器上

    1.1K20

    利用SVN的POST-COMMIT钩子自动部署代码

    最近配置了一台SVN服务器,用来保存自己一些小项目的代码。同时,SVN服务器也是一台前端的Web。所以希望利用SVN的POST-COMMIT钩子HOOKS,在提交代码的同时进行部署。...具体的步骤如下: 1、找到SVN项目的HOOKS目录。目录中默认会几个对应操作的钩子模板,我们需要创建一个post-commit的文件。...4、代码CO出来之后,可以进行post-commit脚本的测试了。因为svn的hooks执行的时候不带有任何的环境变量,所以我们不能通过简单的 ./post-commit 进行代码的测试。...必须要使用sudo su 等命令切换到svn或者apache服务器运行用户下,用下面的方法进行测试 env – ....补充,使用这个方法部署代码并不能够保证同步完成,执行 svn update 时,如果check出来的文件夹中存在和svn中重名的文件夹或者文件,会导致 update 失败,这一点需要注意。

    1.2K30

    Subversion钩子

    pre-commit和post-commit,也就是提交前后的钩子,下面以pre-commit为例来说明一下如何自定义Subversion钩子。...假设有一个PHP项目使用Subversion做版本控制,使用中发现了一些问题,比如程序员不写日志,或者提交的文件有BOM,或者提交的文件有语法错误,或者提交的文件不符合编码规范等等,这些问题都可以利用pre-commit...钩子来解决,实际上已经有人写了解决类似问题的工具php-svn-hook,不过我们这里选择自己实现: shell> cat /path/to/repository/hooks/pre-commit #!...本文以pre-commit为例说明了一下钩子的用法,实际上其他脚本也很有用,比如说如果你想在提交代码后发一条微博,就可以利用post-commit来解决,但是记住不要滥用,比如说非常流行的一种做法是利用...post-commit来更新线上程序,但由于整个操作过程不能保证原子性,所以有可能出现问题,解决方法请参考Rasmus的描述,我就不多说了。

    72420

    SVN Hooks的介绍及使用

    等 SVN中的hooks按照所在位置可以分为两类,客户端hooks和服务端hooks,日常使用中服务端hooks使用更广,我们也以服务端hooks介绍为主 SVN服务端hooks主要有以下9种: pre-lock...做提交log的合规性检查,需要传递两个参数给hooks脚本,按照顺序依次为:1.版本库路径,2.提交事务的名称 post-commit:提交完成后执行,这应该是使用最广的hooks之一,通常用来在提交之后发送提交通知...svn/repos,仓库名称为ops-coffee,那么hooks就位于/home/svn/repos/ops-coffee/hooks/目录下,文件夹下的.tmpl的文件为hooks的模板文件,以shell...注意这些hooks文件都要有可执行权限 如果我们要使用svn的hooks,那么就在hooks文件夹下新建文件名为hooks类型的文件(例如pre-commit,没有后缀,名字也不能随意改)并为文件赋予可执行权限...首先是代码提交(合并)之后触发,那么就需要用到post-commit这个hook,具体内容如下 # cat /home/svn/repos/ops-coffee/hooks/post-commit #!

    3.9K70

    【腾讯云的1001种玩法】在QCloud的 CentOS 下搭建一个适用于个人的 SVN 环境

    检查是否创建成功 cd /var/svn/svnrepos 之后使用 ll 查看是否多了一些文件夹(如果成功) 配置项目库 进入 conf 目录,了解配置文件: authz 是权限控制文件 passwd...是账号密码文件 svnserve.conf 是 SVN 服务配置文件 配置 passwd 根据 users 标签中的提示进行配置即可,等号左边是用户名,右边是密码 配置 authz 只有自己用,所以只是限定自己的用户有...服务 svnserve -d -r /var/svn/svnrepos -d: 守护进程 -r:svn 根目录 连接 SVN 使用 TortioseSVN 连接到 svn://我的 ip 地址/ 输入前面设置的用户名密码即可访问...cd /var/svn/svnrepos/hooks 添加配置文件 cp post-commit.tmpl post-commit chmod 777 post-commit 修改 post-commit...SVN 中在同步 使用 SVN 的 add 命令进行添加文件或者文件夹 如果需要添加的文件很多,可以使用 Linux 的 通配符: svn add / 批量添加/删除 SVN 同步的文件 使用 bash

    1.6K00

    svn集成ReviewBoard,让post-commit hook后台运行

    svn可以通过post-commit hook与ReviewBoard集成,实现post-commit-review。...其实现原理为: 用户在提交代码至svn完成后触发post-commit钩子脚本 在svn post-commit hook中调用RBtools的rbt post命令连接ReviewBoard自动提交代码评审请求...在使用中出现了如下问题: 用户需要等待post-commit hook执行完毕后才算提交完成 这样直接导致了用户提交代码等待时间过长,影响了用户体验 于是想到让post-commit中调用的...原来还需要用2>&1把所有的错误输出转换成标准输出,使得错误输出和标准输出都被重定向到一个叫做out.file 的文件中 其中2表示错误输出,1表示标准输出 rbt post "$args" 2...其他: svn post-commit脚本编写可以参考:reviewboard源码中用户贡献的样例 rbt post 命令官方指南 (adsbygoogle = window.adsbygoogle

    2.3K20

    Windows下安装和部署SVN服务器且同步到Web站点的图文教程

    还是下一步,感兴趣的可以使用翻译软件看看译文: 安装完成,如图: 安装完成之后新建项目,如图选择第一个即可: 安装选择第一个如图: 设置新建项目的名称: 选择第一个空白项目: 这个是权限...然后刷新文件目录就是显示一个绿色对号图标,接下来打开SVN服务端,项目右键选择“Properties” 在弹出的新窗口点击“Hooks”然后双击“Post-commit hook”如图: 代码如下:...如图: 打开网站根目录,右键选择更新,因为我们默认的站点有文件,需要提交更新,选择需要同步文件,我这里就一个文件,点击确定,如图: 会提示我们“svn: E155004: Run 'svn cleanup...刷新文件都变成了绿色对号啦,但是在更新上传的时候还是会提示这个,但是不重要,毕竟我们不在服务器端操作,设置完成我们回到本机客户端,看好了是客户端,不是服务器端了。...,右键更新,提交即可,打开网站查看文件是否更新。

    2.4K20
    领券