我在Linux上运行SVN。我希望一旦提交就运行自动部署。基于我的搜索,看起来svn post-commit可能会成功。但我无法从我的SVN安装中找到SVN后提交。所以我想知道它是否是一个单独的安装?是否有可以下载和安装的SVN post-commit钩子?
答案 0 :(得分:21)
首先,您可能不希望将此作为提交后执行。原因是你不想在钩子中做任何花费太长时间的事情,因为用户必须等待钩子完成才能继续。
要回答您的问题,请查看服务器上的存储库目录,您应该看到以下目录和文件:
其中一个目录名为hooks
。看看这个目录:
这些是各种钩子的模板。您将看到这些都是简单的BASH / Korn / Bourne shell脚本。您将使用svnlook
命令获取有关您的用户刚刚提交的修订或事务(如果预提交挂钩)的信息。
您要做的是运行命令svnlook changed
以查看更改内容,然后根据此信息,您必须获取文件并进行部署。这意味着您必须创建一个工作目录并进行结帐。想象一下,开发人员正在进行签入,然后等待你的提交后挂钩进行结账和部署。
你最好做的是获得Jenkins之类的东西来完成你的提交任务。 Jenkins通常是一个连续构建服务器。每当有人提交时,Jenkins都会对该项目进行结账并进行构建。它可以运行各种测试,然后在出现任何问题时通过电子邮件发送给开发人员。
但是,如果你真的没什么可构建的,它也可以简单地进行结账和部署。 Jenkins使用Java 1.6运行,但除此之外,它很容易安装和使用。这是所有菜单驱动的,您不需要知道如何创建XML文件或编写任何程序来使用它。
所以,看看Jenkins,看看从那里开始部署。这样,您的开发人员可以在Jenkins处理部署时继续工作。并且,如果部署出现问题,您可以让Jenkins发送电子邮件,IM,推文,甚至将红绿灯更改为红色。
答案 1 :(得分:15)
这不是一个单独的安装。在您的存储库目录中,有一个'hooks'目录。您可以找到post-commit.tmpl,只需修改文件并根据您的操作系统类型将其重命名为可执行文件。