问题
每当开发人员提交代码时,我都需要将更改从SVN服务器推送到远程Web服务器。我想有效地做到这一点。因此,我只想将更改推送到远程服务器而不是整个存储库。
现状
目前,远程服务器每五分钟调用一次更新。但是,我宁愿将流量入站到Web服务器而不是出站。 svn服务器位于Windows 2003机器上。 Web服务器是一个OpenSUSE 11.4框。
以前的SO搜索
我在搜索SO这个问题,但似乎你们都喜欢git,大多数问题都与这个软件有关。
提前谢谢。你们很棒。
答案 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