本文档编写用于描述 Subversion 1.6.x 系列。如果您运行的是不同版本的 Subversion,强烈建议您访问 https://svnbook.subversion.org.cn/ 并参考适合您 Subversion 版本的文档。
svnserve 允许使用 Subversion 的自定义网络协议访问 Subversion 仓库。
您可以将 svnserve 作为独立的服务器进程运行(对于使用 svn://
访问方法的客户端);您可以让一个守护进程(例如 inetd 或 xinetd)在需要时启动它(也适用于 svn://
),或者您可以让 sshd 在需要时为 svn+ssh://
访问方法启动它。
无论使用哪种访问方法,一旦客户端通过传输其 URL 选择了仓库,svnserve 就会读取仓库目录中名为 conf/svnserve.conf
的文件,以确定仓库特定的设置,例如使用哪个身份验证数据库以及应用哪些授权策略。有关 svnserve.conf
文件的详细信息,请参阅 名为“svnserve,一个自定义服务器”的部分。
与我们之前描述的命令不同,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
指定的接口,它可以是主机名或 IP 地址。
--listen-once
(-X
)
使 svnserve 在 svn
端口上接受一个连接,服务它,然后退出。此选项主要用于调试。
--listen-port
PORT
使 svnserve 在守护进程模式下运行时监听 PORT
。(FreeBSD 守护进程默认情况下只监听 tcp6 - 此选项告诉它们也监听 tcp4。)
--log-file
FILENAME
指示 svnserve 创建(如果需要)并使用位于 FILENAME
的文件作为 Subversion 操作日志输出,与 mod_dav_svn 生成的日志输出类型相同。有关详细信息,请参阅 名为“高级日志记录”的部分。
--pid-file
FILENAME
使 svnserve 将其进程 ID 写入 FILENAME
,该文件必须可由运行 svnserve 的用户写入。
--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
显示版本信息和可用仓库后端模块的列表,然后退出。