安装 Subversion 后, 通常用独占端口(daemon)的方式启动svn服务:
$ svnserve -d -r /home/svn
其中服务启动方式有【daemon、inetd、tunnel】 三种模式。daemon 模式: 独站端口方式启动。
inetd 模式: 监控端口方式运行。 (监控端口,当有连接来的时候再启动服务。由 inetd 或 xinetd 管理,控制svn进程的启动)
tunnel 模式: 隧道模式假设有一个远程服务程序 (例如 rsh 或 ssh 已经成功地授权了 一个用户, 并且以该 用户的身份 启动了一个私有 的 svnserve 进程. (用户几乎没有必要在命令行 启动带有选项
-t
的 svnserve, 相反, SSH 守护进程会替用户执行这个操作) 程序 svnserve 像往常一样运行 (通过stdin
和stdout
与其他 进程通信), 它还假设网络数据可以通过某种隧道, 被自动重定向回客户端. 当隧道代理 以这种方式启动 svnserve 时, 要确保被授权的用户 对仓库数据库文件具有读写权限, 在本质上它和本地用户通过file://
URL 访问仓库的情况是一样的.详情参见: https://svnbook.red-bean.com/zh/1.8/svn.serverconfig.svnserve.html
由于daemon模式无法同时监听ipv4、ipv6的同一个端口,所以使用xinetd的方式启动。
安装完xinetd后,创建/etc/xinetd.d/svn配置文件,文件内容如下:
service svn
{
disable = no
port = 3690
socket_type = stream
protocol = tcp
wait = no
user = yxh
server = /usr/bin/svnserve
server_args = -i -r /home/svn/myproject
}
此时无论是ipv4、ipv6都可以用 svn://irangotec.com:3690 来访问了。