这份文档是为描述 Subversion 1.4 而写的。如果您正在运行更新版本的 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 没有子命令——svnserve 完全由选项控制。
--daemon (-d)导致 svnserve 在守护进程模式下运行。 svnserve 将自己置于后台,并在 svn 端口(默认值为 3690)上接受和服务 TCP/IP 连接。
--listen-port=PORT当在守护进程模式下运行时,导致 svnserve 监听 PORT。(FreeBSD 守护进程默认只监听 tcp6 - 这个选项告诉它们也监听 tcp4。)
--listen-host=HOST导致 svnserve 监听由 HOST 指定的接口,该接口可以是主机名或 IP 地址。
--foreground当与 -d 一起使用时,此选项会导致 svnserve 停留在前台。此选项主要用于调试。
--inetd (-i)导致 svnserve 使用 stdin/stdout 文件描述符,这适用于从 inetd 中运行的守护进程。
--help (-h)显示用法摘要并退出。
--version显示版本信息,可用仓库后端模块列表,并退出。
--root=ROOT (-r=ROOT)设置由 svnserve 提供服务的仓库的虚拟根目录。客户端提供的 URL 中的路径名将相对于此根目录进行解释,并且不允许超出此根目录。
--tunnel (-t)导致 svnserve 在隧道模式下运行,这与 inetd 模式的工作方式相同(两种模式都在 stdin/stdout 上服务一个连接,然后退出),只是连接被认为是使用当前 uid 的用户名预先验证的。当通过隧道代理(例如 ssh)运行时,此标志会由客户端自动为您传递。这意味着您很少需要 自己 将此选项传递给 svnserve。因此,如果您发现自己在命令行上输入了 svnserve --tunnel,并且想知道接下来该怎么做,请参阅 名为“通过 SSH 建立隧道”的部分。
--tunnel-user NAME与 --tunnel 选项一起使用;告诉 svnserve 假设 NAME 是经过验证的用户,而不是 svnserve 进程的 UID。这对希望通过 SSH 共享单个系统帐户但保持独立提交身份的用户很有用。
--threads (-T)在守护进程模式下运行时,会导致 svnserve 为每个连接生成一个线程,而不是一个进程(例如在 Windows 上运行时)。 svnserve 进程仍然在启动时将自己置于后台。
--listen-once (-X)导致 svnserve 在 svn 端口上接受一个连接,服务它,然后退出。此选项主要用于调试。