如何在有人提交时自动更新工作副本svn?

我们有一个SVN服务器(UberSVN),我们有一个testing服务器(Ubuntu 11.10)。 testing服务器运行SVN-client和LAMPP。

我们正在寻找一个解决scheme,一旦有人将更改提交到SVN服务器,就会自动更新testing服务器上的工作副本。

如何在有人提交时自动更新工作副本svn

想到几个选项

  1. 以testing服务器上每隔几分钟执行一次简单的cron作业和SVN更新的简单大锤方法。

  2. 在SVN服务器上使用SVN Post-commit挂钩向testing服务器发送提交信号,以便testing服务器可以更新。 信号传输可以简单地通过将文件放置在testing服务器在脚本中查找的共享位置。

  3. 使用适当的“持续集成”服务器,如http://jenkins-ci.org/

选项2在编写一些脚本方面需要一些工作,但是应该相当简单。

我曾经使用过菲尔提到的2号。

我configuration的是我为每个存储库在svn服务器上创build了一个工作副本,就像自动部署一样。

因此,无论何时有人提交存储库,我的post-commit脚本都会更新工作副本,然后使用每隔2分钟运行一次的cron将客户机的rsync工作副本rsync到不同客户端机器上的工作副本。

我正在使用Subversion。 这是我使用的命令。

  1. svn co file:/// path / to / $ SvnRepoName / working / $ ProjectName – > svn服务器上的本地工作副本

  2. / usr / bin / svn update / working / $ PROJECTNAME – >在我的post-commit脚本中。

  3. 客户端机器中的rsync / working / $ PROJECTNAME的shell脚本。