目录
Subversion资料库可以被和资料库位于同一机器上的多个客户端使用file:///来同时访问。但是典型的Subversion
设置是:一个独立的服务机器被办公室各处的——或世界各地的——计算机上的客户端访问。
本节讲述如何把你的Subversion资料库暴露到它的宿主机器之外,以便被远程客户端访问。我们将讨论当前Subversion可用的服务器机制, 讨论每个机制的配置和使用。在读了本节后,你应该能决定哪种网络设置适合你的需要,并理解如何在你的宿主计算机上激活这种设置。
Subversion设计了一个抽象网络层。这意味着资料库可以被编程用任何种类的服务器进程访问,并且客户端“资料库”访问API 允许程序员编写与相应协议通信的插件。理论上,Subversion能利用无限多种网络实现。实际上,只有两种服务器在编写中。
Apache是一个非常受欢迎的web服务器;使用mod_dav_svn模块,Apache可以访问资料库,并使得它能被客户端通过 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)帐号 |
| 授权选项 | 普适的读/写访问,或者按目录的读/写控制 | 普适的读/写访问,或者使用pre-commit钩子的按目录的写(但包括读)控制 |
| 加密 | 通过可选的 SSL | 通过可选的 SSH 通道 |
| 互操作性y | 部分可被其它WebDAV 客户端使用 | 不可互操作 |
| Web 察看 | 有限的内建支持,或者通过第三方工具,比如ViewCVS | 通过第三方工具,比如ViewCVS |
| 速度 | 稍微慢些 | 稍微快些 |
| 初始设置 | 有点复杂 | 相当简单 |