svnserve
最后更新于:2022-04-02 05:59:55
### **svnserve**
**svnserve**允许Subversion版本库使用`svn`网络协议,你可以作为独立服务器进程运行svnserve,或者是使用其它进程,如**inetd**、**xinetd**或**sshd**为你启动进程。
一旦客户端已经选择了一个版本库来传递它的URL,**svnserve**会读取版本库目录的`conf/svnserve.conf`文件,来检测版本库特定的设置,如使用哪个认证数据库和应用怎样的授权策略。关于`svnserve.conf`文件的详情见[“svnserve,一个自定义的服务器”一节](# "svnserve,一个自定义的服务器")。
### **svnserve**选项
不象前面描述的例子,**svnserve**没有子命令―**svnserve**完全通过选项控制。
`--daemon` (`-d`)
导致**svnserve**以守护进程方式运行,**svnserve**维护本身并且接受和服务svn端口(缺省3690)的TCP/IP连接。
`--listen-port`=*`PORT`*
在守护进程模式时导致svnserve监听*`PORT`*端口。
`--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**之类的管道时使用。
`--tunnel-user NAME`
与`--tunnel`选项结合使用;告诉svnserve假定NAME就是认证用户,而不是svnserve进程的UID用户,当希望多个用户通过SSH共享同一个系统帐户,但是维护各自的提交标示符时非常有用。
`--threads` (`-T`)
当以守护进程模式运行,导致**svnserve**为每个连接产生一个线程而不是一个进程,**svnserve**进程本身在启动后会一直在后台。
`--listen-once` (`-X`)
导致**svnserve**在svn端口接受一个连接,维护完成它退出。这个选项主要用来调试。
';