没有废话,直接开始

svn 目录:/svn/web

nginx网站目录:/usr/share/nginx/html

找到svn项目的hooks目录,这里是/svn/web/hooks。目录中默认有对应操作的钩子模板,这里我选择创建一个post-commit的文件。

        vi /svn/web/hooks/post-commit

                #!/bin/bash

                REPOS "$1"

                REV "$2"

                export LANG=zh_CN.UTF-8

                echo "Code Deployed at `date "+%Y-%m-%d %H:%M"`" >> /svn/web/hooks/deploy_log

                /usr/bin/svn update --username yangkui --password ******* /usr/share/nginx/html

赋予文件执行权限

        chmod +x /svn/web/hooks/post-commit


Checkout一份代码到网站目录

        cd /usr/share/nginx/html

        svn checkout svn://127.0.0.1/

可以开始测试

image.png

可以看到为空

svn钩子post-commit代码自动部署_第1张图片

编写一个测试html

svn钩子post-commit代码自动部署_第2张图片


svn钩子post-commit代码自动部署_第3张图片


提交后可以看到文件已经自动同步至web目录

svn钩子post-commit代码自动部署_第4张图片


svn钩子post-commit代码自动部署_第5张图片


测试完成


!!设置成功之后,注意不要直接修改网站数据,否则会导致后期svn更新数据的时候失败报错,如果发生这种情况,建议将文件删除重新上传,或者自己找找还有什么办法