这份文档是为了描述 Subversion 1.2 而写的。如果你运行的是更新版本的 Subversion,我们强烈建议你访问 https://svnbook.subversion.org.cn/ 并参考与你的 Subversion 版本相符的版本。

Subversion 和 DeltaV

最初的 WebDAV 标准取得了广泛的成功。每一个现代的计算机操作系统都内置了一个通用的 WebDAV 客户端(详细信息将在后面给出),而且许多流行的独立应用程序也能够使用 WebDAV — 例如微软 Office、Dreamweaver 和 Photoshop。在服务器端,Apache webserver 从 1998 年开始就能提供 WebDAV 服务,并被认为是事实上的开源标准。还有其他一些商业 WebDAV 服务器可用,包括微软自己的 IIS。

不幸的是,DeltaV 的成功并不那么显著。很难找到任何 DeltaV 客户端或服务器。那些存在的都是相对不知名的商业产品,因此很难测试互操作性。DeltaV 停滞不前的原因并不完全清楚。有些人认为规范过于复杂,另一些人认为虽然 WebDAV 的功能具有广泛的吸引力(即使是最不善于技术的人也欣赏网络文件共享),但版本控制功能对大多数用户来说并不有趣或必要。最后,有些人认为 DeltaV 不受欢迎是因为仍然没有实现它的开源服务器产品。

当 Subversion 还处于设计阶段时,使用 Apache httpd 作为主网络服务器似乎是个好主意。它已经有一个模块来提供 WebDAV 服务。DeltaV 是一个相对较新的规范。希望 Subversion 服务器模块 (mod_dav_svn) 最终会发展成为一个开源的 DeltaV 参考实现。不幸的是,DeltaV 具有非常特殊的版本控制模型,它与 Subversion 的模型并不完全一致。有些概念是可以映射的,有些则不能。

结果是

  1. Subversion 客户端不是一个完全实现的 DeltaV 客户端。

    客户端需要服务器提供 DeltaV 无法提供的某些东西,因此很大程度上依赖于一些只有 mod_dav_svn 才能理解的 Subversion 特定的 REPORT 请求。

  2. mod_dav_svn 不是一个完全实现的 DeltaV 服务器。

    DeltaV 规范的许多部分与 Subversion 无关,因此没有实现。

开发者社区中仍然存在一些争议,即是否值得纠正这两种情况中的任何一种。改变 Subversion 的设计以匹配 DeltaV 是很不现实的,因此客户端可能永远无法从通用 DeltaV 服务器获得它需要的所有东西。另一方面,mod_dav_svn 可以进一步开发以实现所有 DeltaV 功能,但很难找到这样做 的动力 — 几乎没有 DeltaV 客户端可以与其进行互操作。