本文档旨在描述 Apache™ Subversion® 的 1.7.x 系列。如果您运行的是其他版本的 Subversion,强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅适合您 Subversion 版本的文档。

svnserve—自定义 Subversion 服务器

svnserve 允许使用 Subversion 的自定义网络协议访问 Subversion 仓库。

您可以将 svnserve 作为独立的服务器进程运行(对于使用 svn:// 访问方法的客户端);您可以使用守护进程(如 inetdxinetd)按需启动它(也适用于 svn://),或者您可以使用 sshd 按需启动它以用于 svn+ssh:// 访问方法。

无论使用哪种访问方法,一旦客户端通过传输其 URL 选择了仓库,svnserve 就会读取仓库目录中名为 conf/svnserve.conf 的文件,以确定仓库特定的设置,例如使用哪个身份验证数据库以及应用哪些授权策略。有关 svnserve.conf 文件的详细信息,请参见 名为“svnserve,自定义服务器”的部分

svnserve 选项

与我们之前描述的命令不同,svnserve 没有子命令,它完全由选项控制。

--cache-fulltexts ARG

切换对全文文件内容缓存的支持(仅限于 FSFS 仓库)。

--cache-txdeltas ARG

切换对文件内容增量缓存的支持(仅限于 FSFS 仓库)。

--compression LEVEL

指定用于网络传输的压缩级别,为 0 到 9 之间的整数(含)。9 提供最佳压缩,5 是默认值,0 完全禁用压缩。

--daemon (-d)

使 svnserve 在守护进程模式下运行。 svnserve 将自身置于后台,并在 svn 端口(默认情况下为 3690)上接受和提供 TCP/IP 连接。

--foreground

-d 一起使用时,使 svnserve 保持在前台。这主要用于调试。

--inetd (-i)

使 svnserve 使用 stdinstdout 文件描述符,这适用于从 inetd 运行的守护进程。

--help (-h)

显示使用摘要并退出。

--listen-host HOST

使 svnserve 监听由 HOST 指定的接口,它可以是主机名或 IP 地址。

--listen-once (-X)

使 svnservesvn 端口上接受一个连接,提供服务并退出。此选项主要用于调试。

--listen-port PORT

使 svnserve 在守护进程模式下运行时监听 PORT。(FreeBSD 守护进程默认只监听 tcp6 - 此选项告诉它们也监听 tcp4。)

--log-file FILENAME

指示 svnserve 创建(如果需要)并使用位于 FILENAME 的文件,用于 Subversion 操作日志输出,与 mod_dav_svn 生成的日志类型相同。有关详细信息,请参阅 “高级日志记录”部分

--memory-cache-size (-M) ARG

配置用于最小化冗余操作的额外内存缓存的大小(以兆字节为单位)。默认值为 16。(此缓存仅用于 FSFS 支持的存储库。)

--pid-file FILENAME

导致 svnserve 将其进程 ID 写入 FILENAME,该文件必须可由运行 svnserve 的用户写入。

--prefer-ipv6 (-6)

在解析监听主机名时,优先选择 IPv6 答案而不是 IPv4 答案。默认情况下优先使用 IPv4。

--quiet

禁用进度通知。错误输出仍将打印。

--root (-r) ROOT

设置由 svnserve 提供服务的存储库的虚拟根目录。客户端提供的 URL 中的路径名将相对于此根目录进行解释,并且不允许超出此根目录。

--threads (-T)

在守护进程模式下运行时,导致 svnserve 为每个连接生成一个线程而不是一个进程(例如,在 Windows 上运行时)。svnserve 进程在启动时仍然会将自身置于后台。

--tunnel (-t)

导致 svnserve 在隧道模式下运行,这与 inetd 的操作模式相同(两种模式都在 stdin/stdout 上提供一个连接,然后退出),只是连接被认为是使用当前 UID 的用户名预先验证的。当通过隧道代理(如 ssh)运行时,此标志会由客户端自动为您传递。这意味着您很少需要自己将此选项传递给 svnserve。因此,如果您发现自己在命令行上键入 svnserve --tunnel 并想知道下一步该怎么做,请参见 名为“通过 SSH 建立隧道”的部分

--tunnel-user NAME

--tunnel 选项结合使用,告诉 svnserve 假设 NAME 是经过身份验证的用户,而不是 svnserve 进程的 UID。这对于希望通过 SSH 共享单个系统帐户但又希望维护单独的提交身份的用户很有用。

--version

显示版本信息和可用的存储库后端模块列表,然后退出。

TortoiseSVN 官方中文版 1.14.7 发布