TortoiseSVN 服务端的配置与使用

TortoiseSVN 客户端自带了svn服务端程序,如果个人使用够用了,不需要去搭建专门的SVN服务端。

svn客户端访问方式

客户端访问方式说明
svn://通过TCP/IP自定义协议访问svnserve服务器。
http://通过WebDAV协议访问支持Subversion的Apache服务器
https://与http://相似,但是用SSL加密访问。
file://直接通过本地磁盘或者网络磁盘访问版本库。
svn+ssh://通过认证并加密的TCP/IP自定义协议访问svnserve服务器

TortoiseSVN 软件不仅是svn客户端,也包含了svn服务端。而 VisualSVN Server是配合了http server来使用。

file:///d:/repos/ 方式访问svn库

优点:不需要运行任何程序,就可以达到文件版本管理目标。

file:///D:/path/to/repos/本机访问版本库
file://ServerName/path/to/repos/访问网络共享中的版本库,你可以使用驱动器影射或使用UNC路径

创建库方式一:右键菜单创建

  1. 创建空白文件夹:d:\ svnRepositoryTest,后在此文件夹里创建版本库。
  1. 创建默认目录结构:一般不使用这种方式,因为实际中使用<库/项目名/目录>的结构
此图片的 alt 属性为空;文件名为 3.png
  1. 通过导入创建目录结构:找到要导入的文件夹,此文件夹自身不会被导入。

创建库方式二:svnadmin创建

svnadmin create d:\svnREPOS

服务端命令

  1. svnserver – 控制svn系统服务的启动等
  2. svnadmin – 版本库的创建/导出/导入/删除等
  3. svnlook – 查看版本库的信息等

客户端命令

  1. svn – 版本库的检出/更新/提交/重定向等

svn://ip/ 方式访问svn库

在服务端创建svn库,方法同上。

配置 conf\svnserve.conf 文件,(为svn库默认配置)

[general] 
anon-access = none 
auth-access = write 
password-db = passwd 
authz-db = authz

此文件默认全部是注释的,配置项的含义为:

  • anon-access:匿名用户权限,可选值有:
    • read 指允许更新代码
    • write 指允许更新代码,也允许提交代码
    • none 指什么都干不了
  • auth-access:访问用户权限,可选值同anon-access。
  • password-db:用户与密码文件路径(相对路径/绝对路径) 。
  • authz-db:用户组与权限的文件路径(相对路径/绝对路径)。

虽然多snv库可以通过配置 password-db、authz-db相同的文件,达到多svn库使用一套权限。但实际中的结构是<库/项目名/目录>,通常一个库就够用了;而是通过配置项目的权限,做隔离。

配置 conf\passwd (用户与密码)

一行一个用户,格式为:用户 = 密码;如上示例,用户user1的密码为123456。

[users]
user1 = 123456
user2 = abcdef

配置 conf\authz (用户组与权限)

  1. 别名配置
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
  1. 用户组配置
    • 一行一个组,格式为:组名 = 用户1,用户2,…,用户n;如上示例:admin组中有用户user1与user2。
[groups]
admin = user1,user2
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
  1. 版本库的目录授权
    • [/] 表示版本库的根目录,[/foo/bar] 表示版本库根目录下的 foo 文件夹下面的 bar 文件夹,注意区分大小写。
    • 用户组或用户
      • @ 是用户组,不是用户;
      • & * 除了以上的所有其他用户;
      • ~ 反向选择;
      • $authenticated 通过验证的用户;
      • $anonymous 匿名用户。
    • r 更新/读取、w 提交/写入。
[/]
@admin = rw
# [/foo/bar]
# harry = rw
# &joe = r
# * =

[repository:/] 表示repositoryr的svn库根目录,[repository:/baz/fuz] 表示repository的svn库目录下的 baz/fuz 子目录。

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

开放3690端口,启动svn服务端

svn是使用3690端口在客户端与服务端进行通讯的。

start svnserve -d -r d:\svnRepository

将SVN服务端,注册为系统服务,服务名为SVN:

sc create SVN binPath= "\"%ProgramFiles%\TortoiseSVN\bin\svnserve.exe\" --service --root d:\svnRepository" depend= TCPIP start= delayed-auto DisplayName= "TortoiseSVN Server"

启动、停止、删除系统服务

net start SVN
net stop SVN
sc delete SVN

svn客户端访问

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注