本文档尚未完善,内容可能随时变更,可能无法准确描述任何已发布的 Apache™ Subversion® 软件版本。将此页面加入书签或将其推荐给其他人可能不是明智之举。请访问 https://svnbook.subversion.org.cn/ 获取此书的稳定版本。
svnserve — 通过 Subversion 自定义网络协议提供 Subversion 仓库服务
svnserve [-d | -i | -t | -X] OPTIONS...
svnserve 允许使用 Subversion 自定义网络协议访问 Subversion 仓库。
您可以将 svnserve 作为独立的服务器进程运行(对于使用 svn://
访问方法的客户端);您可以使用 inetd 或 xinetd 等守护进程按需启动它(同样适用于 svn://
),或者您可以让 sshd 按需为 svn+ssh://
访问方法启动它。
除非在命令行上指定了 --config-file
选项,否则在客户端通过传输其 URL 选择仓库后,svnserve 会读取仓库目录中名为 conf/svnserve.conf
的文件,以确定仓库特定的设置,例如使用哪个身份验证数据库以及应用哪个授权策略。有关 svnserve.conf
文件的详细信息,请参阅 名为“svnserve,自定义服务器”的部分。
与我们之前描述的命令不同,svnserve 没有子命令,它完全由选项控制。
--cache-fulltexts
ARG
切换对全文本文件内容缓存的支持(仅限 FSFS 仓库)。
--cache-txdeltas
ARG
切换对文件内容增量缓存的支持(仅限 FSFS 仓库)。
--compression
LEVEL
指定用于线传输的压缩级别,表示为介于 0 到 9 之间的整数(包括 0 和 9)。9
值提供最佳压缩,5
是默认值,而 0
则完全禁用压缩。
--config-file
FILENAME
当指定此选项时,svnserve 会在程序启动时读取一次 FILENAME
并缓存 svnserve 配置。来自 filename 的密码和授权配置将在每次连接时加载。使用此选项时,svnserve 不会读取任何每仓库 conf/svnserve.conf
文件。有关此选项的文件格式详细信息,请参阅 名为“svnserve,自定义服务器”的部分。
--daemon
(-d
)使 svnserve 进入守护进程模式。 svnserve 将自身置于后台,并在 svn
端口(默认情况下为 3690)上接受并提供 TCP/IP 连接。
--foreground
当与 -d
一起使用时,使 svnserve 保持在前台。这主要用于调试。
--inetd
(-i
)使 svnserve 使用 stdin
和 stdout
文件描述符,这对于从 inetd 中运行的守护进程来说是合适的。
--help
(-h
)显示使用摘要并退出。
--listen-host
HOST
使 svnserve 在由 HOST
指定的接口上侦听,HOST
可以是主机名或 IP 地址。
--listen-once
(-X
)使 svnserve 在 svn
端口上接受一个连接,提供服务,然后退出。此选项主要用于调试。
--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
显示版本信息和可用的仓库后端模块列表,然后退出。