【问题标题】:How to Push changes from SVN server to Remote web server如何将更改从 SVN 服务器推送到远程 Web 服务器
【发布时间】:2011-09-25 09:36:37
【问题描述】:

问题

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

现状

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

以前的 SO 搜索

我已经搜索过这个问题,但似乎你们喜欢 git,而且大多数问题都与该软件有关。

提前致谢。你们太棒了。

【问题讨论】:

  • 您可以通过 SSH 连接到您的 SUSE 机器来触发更新吗?如果是这样,您可以在您的 SVN 服务器上设置一个提交后挂钩来执行此操作。希望有人可以填写详细信息作为答案!
  • 当您说将更改推送到远程 Web 服务器时,您以什么格式推送它们。您是否尝试镜像存储库?

标签: svn repository-pattern push


【解决方案1】:

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

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

有几种方法可以做到这一点(比如在服务器 A 上签出一个工作副本,并将该工作副本的 rsync 推送到服务器 B,这样您还可以屏蔽 .svn 目录)。但是,就像 Rup 所说,最简单的方法是设置一个简单的提交后挂钩,以通过 SSH 连接到服务器 B 并进行更新。在服务器 A 上(假设您在服务器 A 和 B 之间设置了授权密钥):

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

【讨论】:

  • 在这种方法中如何输入 ssh 和 svn 的密码?
  • 您必须在远程服务器(在我的示例中为 serverB)上设置一个 authorized_keys 文件。这将允许服务器 A 连接到服务器 B 而无需输入密码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 1970-01-01
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
相关资源
最近更新 更多