hook代码 svn_利用svn钩子hooks/post-commit实现代码自动更新

本文介绍利用SVN的hook功能将SVN服务器上的数据同步到Web服务器的方法。先找到仓库文件夹中的hooks文件夹,添加post - commit文件,在文件中实现数据复制。还提到要解决SVN服务端权限问题,以及可能出现的版本不一致、需重启服务、执行svn cleanup命令等问题。

利用svn钩子hooks/post-commit实现代码自动更新

小李传奇技术 • 2020 年 Dec 月 Sat 日

建立SVN服务器 和 安装SVN客户端的我就不叙述了。

利用SVN的hook功能就能实现将SVN服务器上的数据同步到Web服务器,思路:首先,找到SVN Server中的仓库(Repositories)文件夹的位置,在相应的项目文件夹中找到hooks文件夹。然后,在该文件夹中添加一个post- commit文件;当有commit动作发生时(提交到SVN Server时)就会执行这个post-commit.bat文件。最后,在该文件实现数据的复制。如下图所示:

使用钩子(将post-commit.tmpl文件复制一份重命名为post-commit.bat)

post-commit.bat里的内容如下所示:SET WORKING_COPY=c:\sdk

svn update %WORKING_COPY% --quiet --username 用户名 --password 密码

最后一步也是最关键的一步就是SVN服务端权限的问题。否则你会出现如下图的错误:

原因是Visual SVN Server服务的执行权限不够,不能对指定目录做读写操作。解决办法,修改Visual SVN Server简单操作 win+R 运行 services.msc 找到visual svn server 服务,右键属性-》登陆面板-》设置桌面交互或者管理员权限再试。两种方式,我选择的管理员权限-下图选择的桌面交互:

设置完毕顺利的话基本完成了工作。

那么我出现了几种问题。我就不图示了,我解答下:

1.服务器上的客户端SVN版本,一定要和本地的SVN版本一致。

2.visual svn server 服务 修改过后要重启服务。

3.一般提示svn cleanup 的,可以找到您的SVN文件目录,在CMD下执行svn cleanup此命令。

好就写到这里,如果有不懂的可以联系我。大家讨论。谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值