如何配置 SVN 以在提交时部署?我希望在提交时部署
答案1
您需要修改提交后钩子。放在这里:
PATH_TO_YOUR_REPO/hooks/post-commit.tmpl
将其名称(或创建一个新名称并保存以供将来参考)更改为:
PATH_TO_YOUR_REPO/hooks/post-commit
然后chown
它chmod
让你的 svn 用户(通常apache
)执行该文件:
chown apache.apache PATH_TO_YOUR_REPO/hooks/post-commit
chmod g+x PATH_TO_YOUR_REPO/hooks/post-commit
假设您想将 repo 的主干导出到本地路径,下面是我用来自动部署到测试服务器(也是我的 SVN repo 服务器)的方法(我不建议使用它来部署到生产服务器,请使用自定义脚本)。这将**DEPLOY**
在您的提交消息中查找标签,并且仅在符合条件时才进行部署。
#!/bin/sh
REPO="$1"
REV="$2"
if ( svnlook log -r $REV $REPO | grep "**DEPLOY**" ) then
svn export --force -r $REV "file://$REPO/trunk" /var/www/html/yourapp
fi
答案2
查看钩子脚本部分存储库创建和配置你可以编写一个 shell 脚本来在任何地方做任何事情......
答案3
可以,但不建议使用提交后钩子。它将使开发人员等待提交完成,直到钩子执行完成。
对于专业解决方案,应该使用持续集成工具,例如:CruiseControl、Jenkins 或其他工具。