ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
这里配置自动更新用的是svn的钩子,脚本是shell,也可以用其他的脚本比如python 钩子脚本的具体写法就是操作系统中shell脚本程序的写法,请根据自己SVN所在的操作系统和shell程序进行相应的写作 实现原理:当用户提交commit动作发生都让另外一处project马上从仓库中进行代码checkout一份出来! 1.在Web目录迁出代码 `sudo svn co svn://127.0.0.1/test /var/www/html --username admin --password admin` 2.添加脚本 在svn项目的hooks文件夹中的post-commit文件中添加脚本:用vi命令编辑一个新的post-commit(看清楚没有后缀名)千万不要用hooks文件夹里自带的post-commit文件,那是模板。 `sudo vi /srv/svn/test/hooks/post-commit` 在文件中添加如下内容: ~~~ #!/bin/sh WEB=/var/www/html #web服务器下的项目不能有空格。 #说明:post-commit会接受两个参数 REPOS="$1" #/srv/svn/test 表示svn仓库的绝对路径值 REV="$2" #表示最新的一个版本号。最后一个版本号 export LANG=en_US.UTF-8 svn update $WEB --username admin --password admin #相当于客户端的update操作 exit 0 ~~~ 修改权限 `chmod 777 post-commit` 如果不能判断自己写的shell脚本是否有错,可以现在hooks目录下运行`./post-commit`试一下 如果出现了sqlite[S8]:attempt to write a readonly database报错 `sudo chown -R www-data:www-data post-commit`