【问题标题】:Issue Accessing SVN Repository with Both SVN and HTTP Protocols使用 SVN 和 HTTP 协议访问 SVN 存储库的问题
【发布时间】:2013-12-21 12:17:50
【问题描述】:

我正在尝试使用 HTTP 协议访问我在本地计算机上创建(使用 svnadmin)的 SVN 存储库,但我无法确定 URL。是否需要提供其他配置才能以 HTTP 方式访问它?使用 SVN 协议访问它没有问题。我只想做一些性能调整并比较协议。有任何想法吗?用于创建 repo 的命令如下。

存储库创建和服务器启动命令:

$cd
$svnadmin create my-repository
$svnserve -d -r /Users/myusername

SVN:

$ svn info svn://localhost/my-repository
Path: my-repository
URL: svn://localhost/my-repository
Relative URL: ^/
Repository Root: svn://localhost/my-repository
Repository UUID: 2de7b13c-0139-45f6-a121-4d8cc6918849
Revision: 86
Node Kind: directory
Last Changed Rev: 86
Last Changed Date: 2013-12-04 11:58:03 -0800 (Wed, 04 Dec 2013)

HTTP:

$ svn info http://localhost/my-repository
svn: E120108: Unable to connect to a repository at URL 'http://localhost/my-repository'
svn: E120108: Error running context: The server unexpectedly closed the connection.

【问题讨论】:

  • 你设置你的网络服务器了吗?

标签: svn


【解决方案1】:

你需要setup Apache httpd with mod_dav_svn

一般来说 svnserve 会比 httpd 快。 httpd 更受欢迎,因为最初 svnserve 不支持加密,除了通过 ssh 隧道(现在通过 SASL 支持),并且它不支持几乎一样多的身份验证方法(SASL 支持再次改变了这一点)。

httpd 唯一没有 svnserve 的主要功能是能够直接使用 Web 浏览器浏览存储库(请注意,这与使用 viewvc 浏览不同)。

httpd 的一个好处是,由于它使用 HTTP,它通常无需特殊配置即可通过防火墙。它也可以被代理(允许缓存代理来帮助加速)。

【讨论】:

  • Ben Reser @ 我已经安装了 svnserve 和 apr,apr-util, serf。安装期间未使用 apxs。 [--with-apxs[=FILE] 构建共享 Apache 模块]。我看到 http 404 错误。我是否需要使用 -apxs 安装 svn 才能通过 svnserve 工作。
  • svnserve 是一种不同的协议,不通过 HTTP 或 Apache 提供服务。 apxs 设置仅用于配置 Apache。如果你想要一个 svnserve 构建,你不需要对 apxs 做任何事情。
  • Ben @ 假设通过 Apache 仅提供对 svn 存储库的 http READ 访问,我不需要安装 SVN。这是正确的吗。通常,要通过 apache 配置 http 访问,Apache 将安装 svn 和 apache 所需的先决条件模块,如 Apr、Apr-util、SSL、ldap、authz 等。然后将安装 svn 以及 Apache 中可用/参考的 Apr 模块。就我而言,我已经安装了 svn 并运行了 svnserve,但 Apache 没有安装。
  • 您不需要安装命令行,因为 Apache 只使用该库。但是您确实需要这些库。由于不同的系统以不同的方式分解它们的包,因此很难具体讨论。因此,请确定您的系统是否仅包含库的软件包,您可以避免安装命令行。
  • Ben @ 我的情况是,我在 Redhat 中安装了 Apache 实例,但没有 SVN 模块,即 mod_dav_svn 和 mod_authz_svn 用于 http 访问。我搜索了一下,发现编译 mod_dav_svn 和其他 svn 模块并复制到 apache /modules 目录将使 apache 为 svn 存储库提供 http 服务。我在 Subversion 1.9.2 源和 apxs 版本中使用了 --with-apxs 作为 2.2.17。但它说我需要使用更高的 apxs 版本。现在我正在尝试编译 apache。这是对的吗,我是在朝着正确的方向前进吗?
猜你喜欢
  • 2013-05-18
  • 2011-04-10
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
  • 2019-02-06
  • 2014-03-07
  • 1970-01-01
  • 2019-12-29
相关资源
最近更新 更多