本手册是为描述 Subversion 1.1 而编写的。如果您正在运行更新版本的 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 作为开源项目,并没有正式认可任何服务器为“主要”或“官方”。两种网络实现都不被视为二等公民;每个服务器都有其优缺点。事实上,不同的服务器可以并行运行,每个服务器以自己的方式访问您的资源库,并且彼此之间不会互相干扰(参见 名为“支持多种资源库访问方法”的部分)。以下是两个可用的 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 客户端 | 不可互操作 |
网页浏览 | 有限的内置支持,或通过 ViewCVS 等第三方工具 | 通过 ViewCVS 等第三方工具 |
速度 | 稍微慢一些 | 稍微快一些 |
初始设置 | 稍微复杂 | 相当简单 |