1

我即将设置一个 SVN 服务器,我需要将代码推送到一些不同风格的远程服务器(Windows 2008 和 Linux (Apache and Tomcat))。

推出代码的最佳方法是什么?服务器之间的同步?SFTP?从远程服务器调用 SVN 导出?我正在考虑在每个存储库上执行一个提交后操作/事件来启动它。多平台解决方案将是关键。

编辑 #1 刚刚了解到 svn export 不会同步,它会在远程服务器上保留已删除的文件完好无损...

编辑#2

  • 我必须考虑到要推送(或拉取)到这些服务器的许多存储库。
  • 这些涉及 PHP 或 ASP.Net 项目(站点/应用程序)

解决方案

  • 在其他服务器上安装 Hudson
  • 将源代码签出到我们网络服务器上的特定位置
  • 为将目录更改为工作副本并调用 svn up 的特定项目创建作业
  • 在作业 URL 上执行 wget 的提交后挂钩 - hudson/job/name_of_job/build?delay=0sec
4

2 回答 2

0

在每个远程系统上调用的提交后挂钩,svn update在每个系统上都有一个工作副本,是您可以走的一条路线(并且很常见,可以作为常见问题解答条目)。

您可能还想研究一个持续集成服务器,特别是如果您需要推出的项目是必须编译和部署的应用程序(Tomcat 可能就是这种情况)。在这种情况下,您的 CI 服务器将轮询检查更改并拉取更新,而不是从 Subversion 服务器推送,然后运行您的编译/测试/部署脚本并报告结果。

于 2012-09-25T19:32:41.583 回答
-1

svn同步

它工作得很好,只是要小心把它放在 post-commit 和 post-revprop-change 钩子中,因为它会在大多数提交中被调用两次。您还需要使远程服务器对除 svnsync 用户之外的所有人都是只读的。

您还可以将这些存储库设置为只读,但自动将编写器推回主存储库,因此远程可以用作缓存。Svnsync 也非常适合进行连续备份。

红皮书的存储库复制部分说明了您需要知道的所有内容。

于 2012-09-25T17:31:27.480 回答