This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.
svnserve — 通过 Subversion 定制化的网络协议向仓库提供网络访问服务.
svnserve [-d | -i | -t | -X]
OPTIONS
...
svnserve 允许客户端使用 Subversion 定制化的 网络协议访问仓库.
svnserve 可以作为一个独立进程运行 (客户端
将使用 svn://
形式的 URL), 也可以在需要时通过
inetd 或 xinetd 调用
svnserve (此时客户端还是使用
svn://
); 还可以在需要时通过 sshd
调用 svnserve (此时客户端用的是
svn+ssh://
形式的 URL).
除非添加了选项 --config-file
, 否则的话一旦客户
端通过 URL 选择了一个仓库, svnserve 将从仓库目录
内的 conf/svnserve.conf
文件读取仓库的配置信息,
例如认证数据库文件的位置和授权策略. 关于
svnserve.conf
的详细信息, 见
“svnserve, 一个定制化的服务器”一节.
和前面介绍的命令有所不同, svnserve 没有子命令, 只有选项.
--cache-fulltexts
ARG
开启或关闭文件内容的全文本缓存 (只支持以 FSFS 作为后端存储 的仓库).
--cache-txdeltas
ARG
开启或关闭文件内容的差异缓存 (只支持以 FSFS 作为后端存储 的仓库).
--compression
LEVEL
指定网络传输时的压缩级别, 在 0 到 9 之间.
9
提供最大的压缩比, 5
是默认值, 0
将禁止压缩.
--config-file
FILENAME
如果添加了该选项, svnserve 将在启动时
读取一次 FILENAME
, 并把配置信息缓存到内存
中. 来自文件的密码和授权配置在 svnserve 收到
一个新的连接时, 都会从文件中读取一次. 指定该选项后,
svnserve 将不会再去读取仓库目录内的
conf/svnserve.conf
. 关于
FILENAME
的格式, 见 “svnserve, 一个定制化的服务器”一节.
--daemon
(-d
)
使得 svnserve 以守护进程模式运行. svnserve 把自己放到后台运行, 接受从端口 3690 (默认端口) 到来的 TCP/IP 连接请求.
--foreground
和选项 --daemon
(-d
) 一起
使用时, svnserve 将保持在前台运行, 通常情况
下是为了调试.
--inetd
(-i
)
使用 inetd 模式, 在这种模式下 svnserve 将会被 inetd 调用运行.
--help
(-h
)
输出帮助信息.
--listen-host
HOST
使得 svnserve 只接受来自
主机 HOST
的请求,
HOST
可以是一个 IP 地址或主机名.
--listen-once
(-X
)
使得 svnserve 在服务完一次连接后就 退出, 这主要用于调试.
--listen-port
PORT
当 svnserve 以守护进程模式运行时, 让它
监听端口 PORT
. (如果是 FreeBSD 系统,
则 svnserve 默认只监听 tcp6 的端口, 加上该
选择后, svnserve 还会同时监听 tcp4 的端口)
--log-file
FILENAME
告诉 svnserve 在必要时创建文件
FILENAME
, 并把 Subversion 的
操作性日志输出到此文件中, 这些日志和
mod_dav_svn 所生成的日志属于同一类型. 更
多的信息见 “高层日志记录”一节.
--memory-cache-size
(-M
) ARG
配置额外的内存缓存大小 (以 MB 为单位), 这些缓存用于减少
冗余操作, 默认值是 16
(该选项只适用于以
FSFS 作为后端存储的仓库).
--pid-file
FILENAME
告诉 svnserve 把进程 ID 写到文件
FILENAME
里, 进程
svnserve 的用户必须对文件具有写权限.
--prefer-ipv6
(-6
)
在解析监听的主机名时, 优先使用 IPv6, 默认情况下是优先使用 IPv4.
--quiet
只输出与错误有关的信息.
--root
(-r
) ROOT
为仓库设置一个虚拟根目录, 设置后, 由客户端在 URL 中指定的 路径将被解释成相对于根目录的路径, 并且不能超出根目录所限定的 文件系统范围.
--threads
(-T
)
以守护进程模式运行时, 告诉 svnserve 为每一个连接创建一个线程, 而不是创建一个进程. 但是 svnserve 进程本身仍然会在启动时把自己放 到后台运行.
--tunnel
(-t
)
使得 svnserve 以隧道模式运行, 和
inetd 模式基本相同 (两种模式都是在
stdin
/stdout
上为新
连接提供服务, 服务完成后退出), 唯一的不同点是在隧道模式下,
新连接会预先用当前 UID 的用户名进行认证. 如果
svnserve 运行在一个隧道代理 (例如
ssh) 之上, 那么客户端会自动添加该选项, 也
就是说用户几乎不用亲自为 svnserve 添加选项
--tunnel
(-t
). 如果你发现自己
自己在命令行输入了 svnserve --tunnel
, 并且想
知道接下来该做什么, 见 “SSH 隧道”一节.
--tunnel-user
NAME
该选项和 --tunnel
(-t
)
一起使用, 告诉 svnserve 使用用户
NAME
作为认证用户, 而不是进程
svnserve 的用户. 如果管理员希望共享同一
SSH 系统账户, 而且单独管理提交用户的身份, 那么这个选项就会很
有用.
--version
显示版本信息, 以及支持的后端存储模块.