You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SVN提交后触发TortoiseSVN自动更新web服务器文件

SVN提交后自动触发Web站点更新实现方案

核心原理

利用SVN服务端自带的post-commit钩子实现提交后触发动作:该钩子会在代码提交到服务端、事务完全完成后自动执行,无需定时轮询。

操作步骤

第一步:优化现有更新脚本

建议将TortoiseSVN GUI工具替换为SVN命令行客户端,避免后台执行时弹出界面,修改后的脚本如下:

@echo off
:: 静默执行SVN更新,无弹窗适合后台运行
svn update "D:\WebSite\Agent" --username 你的SVN账号 --password 你的SVN密码 --non-interactive
:: 若必须保留TortoiseSVN调用方式,调整参数如下
:: "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:"D:\WebSite\Agent" /closeonend:0 /notempfile
exit /b

将脚本保存为auto_update_web.bat,手动执行一次验证更新功能正常。

第二步:配置SVN服务端post-commit钩子

  1. 进入SVN服务端对应版本库的根目录,找到hooks文件夹
  2. 复制目录下的post-commit.tmpl模板文件:
    • SVN服务端运行在Windows系统,重命名为post-commit.bat
    • SVN服务端运行在Linux系统,重命名为post-commit并给文件添加可执行权限
  3. 编辑钩子文件,添加触发更新脚本的逻辑:
    • 若SVN服务端和Web服务器为同一台机器,直接在钩子文件末尾添加脚本调用指令
      call "D:\脚本存放路径\auto_update_web.bat"
      
    • 若SVN服务端和Web服务器为不同机器,可通过内网远程调用工具、或者在Web服务器搭建简易HTTP接口接收提交通知后执行更新脚本,钩子内添加对应调用指令即可
  4. 提交测试:本地提交一次代码到SVN,验证Web站点文件是否自动更新

注意事项

  • 运行SVN服务端的账号、运行更新脚本的账号,都需要拥有站点目录D:\WebSite\Agent的读写权限,以及SVN仓库的拉取权限
  • 不要在钩子脚本中添加耗时过长的逻辑,避免阻塞用户提交操作,复杂更新逻辑建议改为异步触发

内容的提问来源于stack exchange,提问作者jan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:18:05