SVN hook post-commit 设置自动更新仓库代码和发送请求

avatar 2021年11月19日15:59:58 0 42 views

我在本地安装了 svn server,需要实现一个功能,当其他人提交了代码,我的本地仓库副本代码(即我自己checkout的副本)自动更新。

这个操作似乎有一点风骚,但是确实有这个需求,因为svnkit工具,只能操作对本地文件(已经checkout的副本)进行操作,模拟用户提交。不能直接修改svn server仓库里的数据。

所以我需要保证我这个副本永远是svn update后最新的代码,实现方式可以搞一个定时任务,自动svn update,还有一个办法就是通过 hook 实现。

实现方法如下

新建hook,选 post-commit hook

也可以自己在hook目录新建post-commit.cmd

代码如下

@echo off
SET WORKING_COPY=F:/tmp/svn/demo
svn update %WORKING_COPY% --username zs --password 123456

这样就是实现了,在其他地方提交的代码,能让我本地代码是最新的

 

当然也可以在hook里写发送请求的内容,需要按照curl

@echo off
curl http://10.1.5.203:8080/test -X POST -H "Content-type:application/json;charset=utf-8" -d "{\"repo\": \"%1\",\"ver\": \"%2\"}"
SET WORKING_COPY=F:/tmp/svn/demo
svn update %WORKING_COPY% --username zs --password 123456

其中%1是仓库名,%2是版本号

 

我现在遇到的问题是,windows环境默认编码是GBK,我后台接受到的参数是GBK输入流,用UTF-8接受会乱码。

不得不说,Windows这方面太坑了,Linux和Mac则不会

 

 

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

avatar 登录者:匿名
可以匿名评论或者登录后台评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0