如何将更改从SVN服务器推送到远程Web服务器

时间:2011-06-29 18:13:07

标签: svn repository-pattern push

问题

每当开发人员提交代码时,我都需要将更改从SVN服务器推送到远程Web服务器。我想有效地做到这一点。因此,我只想将更改推送到远程服务器而不是整个存储库。

现状

目前,远程服务器每五分钟调用一次更新。但是,我宁愿将流量入站到Web服务器而不是出站。 svn服务器位于Windows 2003机器上。 Web服务器是一个OpenSUSE 11.4框。

以前的SO搜索

我在搜索SO这个问题,但似乎你们都喜欢git,大多数问题都与这个软件有关。

提前谢谢。你们很棒。

1 个答案:

答案 0 :(得分:1)

我将扩展Rup的评论(因为他问过!)。

听起来你的远程服务器(我们称之为服务器B)有一个存储库部分的工作副本。您希望位于另一台服务器(服务器A)上的存储库在服务器B上触发svn update命令。

有几种方法可以做到这一点(比如在服务器A上签出一份工作副本,并将该工作副本的rsync推送到服务器B,允许您同时屏蔽.svn目录)。但是,就像Rup所说,最简单的方法是设置一个简单的post-commit钩子到SSH到服务器B并进行更新。在服务器A上(假设您在服务器A和B之间设置了authorized_keys):

#!/bin/bash
ssh serverB 'svn update /path/to/working/copy' > /dev/null