svnserve 是一个轻量级的服务, 使用自定义的协议通过TCP/IP与客户端通讯。 客户端通过由 svn:// 或者 svn+ssh:// 开始的URL访问...
svnserve 是一个轻量级的服务,
使用自定义的协议通过TCP/IP与客户端通讯。
客户端通过由 svn:// 或者 svn+ssh://
开始的URL访问svnserve服务器。
启动服务器
端口监控(inetd)模式
如果你打算用端口监控来启动处理客户的访问请求的进程,你可以通过传入参数-i来启动:
svnserve -i
当使用-i参数启动服务的时候,svnserve通过stdin和stdout用自定义协议和客户端
通讯。同时服务侦听3690端口。
独立端口监控进程
使用参数-d启动服务作为一个独立的端口监控进程。
svnserve -d
当运行svnserve在独立端口监控模式时,你可以使用--listen-port=和--listen-host=参数来自定义需要的端口和主 机名称。当前模式默认的端口是3690。
当然,也有第三种方法启动svnserve,也就是使用“隧道模式”,使用-t参数启动服务。这个模式要求远程服务程序,如RSH或SSH,已经成 功验证用户,并且使用已经校验的用户启动一个属于该用户的svnserve进程。当使用该模式提供服务时,要确认启动的用户帐户具备对 Repository的读/写权限。
设置项目目录
当svnserve开始运行时,它将会暴露所有的Repository到网络上。不过,当客户端需要获取一个Repository的内容时,需要指
定Reopsitory的绝对路径。例如:一个Repository放在文件路径
C:/Project Repository/Project1
那
么当客户端访问时,需要指定绝对路径:
svn://host/C:/Project Repository/Project1
所以,为了
增加保密性,你可以使用参数-r指定需要暴露的Repository的路径,当用户访问时,只需指定Repository的名称即可。例如上面的
Repository,当启动服务时,使用如下的方法:
svnserve -d -r C:/Project Repository
那么
当客户端访问时,则使用
svn://host/Project1
就可以获取数据了。
内置的验证和授权
当客户端连接到一个svnserve进程时,下面的流程就会触发:
1、客户选择一个指定的Repository;
2、服务处理
Repository的配置文件 conf/svnserve.conf文件,并且开始执行在其中定义的所有验证和授权策略;
3、依赖与情形和授
权策略:
a)客户端也许允许匿名访问而不需要验证,或者
b)客户但也许需要在任何时候被要求验证,或者
c)假如处于"隧道
模式"中,客户端将声明自己已经可以被外部验证。
很显然,如上所说,用户文件是一个名为svnserve.conf的,放在conf目录下的文件。
现在我们来看看如何配置这个文件:
这
个配置文件放置在Repository的目录中的conf目录下,它有两个节点:
[general]
[users]
其中,
[general]的配置信息有:
anon-access = read
auth-access = write
其中表示对于验
证有效的以及没通过验证的用户可以做什么事情。分别有read, write和none
[users]的标签的配置内容有:
USERNAME = PASSWORD
password-db = passwd
realm
= My First Repository
其中表示,用户名对应的密码是什么,或者指定一个存储用户名和密码的文件的相对或绝对路径以及指定
了Repository的验证领域。如果两个Repository有相同的验证领域,那么它们应该有相同的密码数据库,反之亦然。默认的领域就是指向当前
的Repository的路径,与服务器的Repository的根目录相关。
- 尝试通过使用 TCP/IP 套接字连接到群集中的 SQL Server 命名实例时收到“SQL Server does not exist or access denied”(SQL Server 不存在,或者访问被拒绝)错误消息
- 客户端使用自定义代理类访问WCF服务
- webservice知识一、SOAP风格的webservice——通过JDK的API发布一个webservice服务和创建一个webservice客户端用于访问该服务
- 客户端使用自定义代理类访问WCF服务
- HA切换问题: 选主+(切换虚拟ip,启动其他服务 或者 开始调用下游) 无法操作另外一个挂掉的主的情况,脑裂问题
- 黑马程序员——8.网络编程(网络模型、网络地址、传输协议(UDP、TCP/IP)、客户端和服务器端、URL)
- 自定义的投票协议的通讯(tcp/ip 与 udp示例)
- 自定义的投票协议的通讯(tcp/ip 与 udp示例)
- Python:通过自定义系统级快捷键来控制程序开始或停止记录日志(使用小技巧解决一个貌似无解的问题)
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- TCP/IP是如何通讯的?信号如何让通过TCP/IP网络到达目的地的?-入门篇(协议帝请绕道)
- Beetle在TCP通讯中使用协议分析器和自定义协议对象
- Samba 服务使用的端口和协议(是一组TCP UDP协议的组合,主要使用CIFS协议,有一个Java例子)
- Python:通过自定义系统级快捷键来控制程序开始或停止记录日志(使用小技巧解决一个貌似无解的问题)
- 客户端使用自定义代理类访问WCF服务 z
- 转一个文章:一直在使用的协议但是有些糊涂的(TCP/IP,http,socket,长连接,短连接)
- C#使用异步Socket实现TCP网络服务的CS的通讯构架(二)使用方法
- MediaPlayer ActiveX访问自定义的URL协议时问题
- SSH服务如何限制IP访问
- 通过客户端IP来规定访问者的访问权限