svnserve
svnserve
当对远程源版本库使用svnsync时,使用Subversion的自定义网络协议。
svnserve允许Subversion版本库使用svn
网络协议,你可以作为独立服务器进程运行svnserve,或者是使用其它进程,如inetd、xinetd(也是svn://
)或使用svn+ssh://
访问方法的sshd为你启动进程。
一旦客户端已经选择了一个版本库来传递它的URL,svnserve会读取版本库目录的conf/svnserve.conf
文件,来检测版本库特定的设置,如使用哪个认证数据库和应用怎样的授权策略。关于svnserve.conf
文件的详情见“svnserve,一个自定义的服务器”一节。
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使用标准输出/标准输入文件描述符,更准确的是使用inetd作为守护进程。
--help
(-h
)显示有用的摘要和选项。
--version
显示版本信息,版本库后端存在和可用的模块列表。
--root
=ROOT
(-r
=ROOT
)设置svnserve服务的版本库的虚拟根,客户端提供的URL中显示的路径会解释为这个根的相对路径,不会允许离开这个根。
--tunnel
(-t
)导致svnserve以管道模式运行,很像inetd操作的模式(两种模式都维护标准输入/标准输出的连接),除了连接是用当前uid的用户名预先认证过的这一点。这个选项在客户端使用如ssh之类的管道时自动传递,这意味着你很少有必要再去传递这个参数给svnserve,所以如果你发现在命令行输入了
svnserve --tunnel
,并想知道接下来怎么做,可以看“SSH 隧道”一节。--tunnel-user NAME
与
--tunnel
选项结合使用;告诉svnserve假定NAME
就是认证用户,而不是svnserve进程的UID用户,当希望多个用户通过SSH共享同一个系统帐户,但是维护各自的提交标示符时非常有用。--threads
(-T
)当以守护进程模式运行,导致svnserve为每个连接产生一个线程而不是一个进程,svnserve进程本身在启动后会一直在后台。
--listen-once
(-X
)导致svnserve在svn端口接受一个连接,维护完成它退出。这个选项主要用来调试。