我有一个需求svn的需求

发布于 2022-09-03 14:36:51 字数 101 浏览 14 评论 0

比方说我svn提交之后,我想触发一个动作,把某个文件夹通过ftp上传的另一个远程的服务器。钩子我只会写同步目录的。按理说,用钩子去执行shell脚本。具体要怎么写,shell脚本要怎么写。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雨落星ぅ辰 2022-09-10 14:36:51

题主的意思是,svn提交代码后,执行特定部署任务。这个用钩子(hook)脚本做到。

具体到svn,在服务器的svn仓库中,svn_repo/hooks/post-commit里面写shell脚本就可以了。svn_repo是你服务器上的svn仓库目录。

我的post-commit代码写的不怎么样,不过你可以参考下:

REPOS="$1"  
REV="$2"  
    
export LANG=zh_CN.UTF-8  
    
SVN_PATH=/usr/bin/svn  
WEB_PATH=/var/www/html/xxx.yyy.com  
TEMP_PATH=/var/www/html/xxx.yyy.com/temp  
  
CURDATE=`date`  
  
LOG_PATH=/tmp/svn_some_update.log  
echo "   "  
echo "---code deployed at $CURDATE---" >> $LOG_PATH 2>&1  
echo `whoami`,$REPOS,$REV >> $LOG_PATH  
/usr/bin/svn update --username username --password password $WEB_PATH --no-auth-cache >> $LOG_PATH 2>&1  
echo "---code deployed end---"    

以及,注意权限:

chmod +x post-commit    # 可执行
chown apache:apache post-commit  # apache组。如果你用的不是apache,那就相应地改掉
情泪▽动烟 2022-09-10 14:36:51

最直接的方法是,修改 SVN 服务器目录下的 hook/post-commit 脚本,在提交成功后会自动执行这个脚本。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文