本文档旨在描述 Subversion 1.2。如果您正在运行较新版本的 Subversion,我们强烈建议您访问 https://svnbooks.subversion.org.cn/ 并查阅适合您 Subversion 版本的书籍版本。
目录
Subversion 仓库可以使用 file:///
方法同时被运行在与仓库所在的同一台机器上的客户端访问。但典型的 Subversion 设置涉及一台服务器机器,从办公室中的所有客户端计算机(也许是世界各地的所有计算机)进行访问。
本节描述如何使您的 Subversion 仓库在主机的外部公开,以便远程客户端使用。我们将介绍 Subversion 目前可用的服务器机制,讨论每个机制的配置和使用。阅读完本节后,您应该能够确定哪种网络设置适合您的需求,并了解如何在您的主机上启用这样的设置。
Subversion 采用抽象网络层设计。这意味着仓库可以通过任何类型的服务器进程以编程方式访问,客户端的“仓库访问”API 允许程序员编写插件来使用相关的网络协议。理论上,Subversion 可以使用无限数量的网络实现。实际上,在撰写本文时,只有两个服务器。
Apache 是一个非常受欢迎的 Web 服务器;使用 mod_dav_svn 模块,Apache 可以访问仓库并通过 WebDAV/DeltaV 协议将其提供给客户端,WebDAV/DeltaV 协议是 HTTP 的扩展。另一个是 svnserve:一个小型独立的服务器程序,它与客户端使用自定义协议进行通信。表 6-1 比较了这两个服务器。
请注意,Subversion 作为一个开源项目,不正式认可任何服务器为“主要”或“官方”。这两种网络实现都没有被视为二等公民;每个服务器都有优点和缺点。实际上,不同的服务器可以并行运行,每个服务器以自己的方式访问您的仓库,并且每个服务器都不会妨碍另一个(参见 名为“支持多种仓库访问方法”的部分)。表 6.1,“网络服务器比较” 简要概述和比较了两个可用的 Subversion 服务器——作为管理员,您可以选择最适合您和您的用户的选项。
表 6.1 网络服务器比较
功能 | Apache + mod_dav_svn | svnserve |
---|---|---|
身份验证选项 | HTTP(S) 基本身份验证、X.509 证书、LDAP、NTLM 或任何其他可用于 Apache httpd 的机制 | CRAM-MD5 或 SSH |
用户帐户选项 | 私有的 'users' 文件 | 私有的 'users' 文件或现有的系统 (SSH) 帐户 |
授权选项 | 全局读/写访问权限或按目录读/写控制 | 全局读/写访问权限或使用预提交钩子进行按目录写(但不能读)控制 |
加密 | 通过可选的 SSL | 通过可选的 SSH 隧道 |
互操作性 | 可以部分地被其他 WebDAV 客户端使用 | 不可互操作 |
Web 查看 | 有限的内置支持或通过第三方工具(如 ViewVC) | 通过第三方工具(如 ViewVC) |
速度 | 稍微慢一些 | 稍微快一些 |
初始设置 | 有点复杂 | 相当简单 |