目录
安装svn和创建版本库...…………..1
用户权限管理... ………………………2
启动SVN.. ………………………………3
客户端访问...…………………………. 4
附加:单版本库和多版本库的配置
安装svn和创建版本库
1、 安装:sudo apt-get install subversion. //安装的内容一般存放在/usr/bin/
2、 检查安装是否成功:/usr/bin/svnserve --version
以下已创建MCD项目版本库(单版本库)为例
3、创建文件夹:mkdir –p /opt/src/repositories/ //存放版本库
4、进入repositories目录:cd /opt/src/repositories/,创建MCD版本库
a、创建文件夹 mkdir MCDRE,
b、创建版本库并指定数据存储模式为FSFS:
/usr/bin/svnadmin create --fs-type fsfs /opt/src/repositories/MCDRE/
c、检查是否创建成功:ls /opt/src/repositories/MCDRE/,显示以下内容创建成功
conf db format hooks locks README.txt
5、创建项目临时目录:mkdir –p /opt/src/temps/MCD/{trunk,tags,branches}
6、复制项目文件到trunk目录下:cp –r MCD /opt/src/temps/MCD/trunk/ //这一步可以忽略
7、导入所需要的项目到版本库MCDRE中:
/usr/bin/svn import /opt/src/temps/MCD/ file:///opt/src/reposiories/MCDRE/ -m “MCD repository”
8、检查是否导入成功:/usr/bin/svn list –verbose file:///opt/src/repositories/MCDRE/
9、修改版本库文件权限:
chmod 770 /opt/src/repositories/MCDRE
chmod –R g+w /opt/src/repositories/MCDRE
用户权限管理
涉及的主要由三个文件:svnserve.conf、passswd、authz
//存放于/opt/src/repositories/MCDRE/conf/
1、 Svnserve.conf: 版本库的配置文件;passwd: 允许访问版本库的用户文件;authz: 用户访问版本库的权限
a、 修改svnserve.conf文件:vi /opt/src/repositories/MCDRE/conf/ svnserve.conf,该文件的内容包括(注意:每一行前面不能有空格,否则会出现Option expected错误):
[general]
#anon-access = none //设置是否允许匿名登录
auth-access = write //设置用户密码登陆
password-db = passwd //指定passwd文件的位置
authz-db = authz //指定authz文件的位置
realm = repository
[sasl]
b、修改passwd文件:vi /opt/src/repositories/MCDRE/conf/ passwd,该文件的内容包括:
[users]
wshijun1=wshijun1 //用户名=密码,每个用户一行
wshijun2=wshijun2
c、修改authz文件:vi /opt/src/repositories/MCDRE/conf/authz,该文件的内容包括:
用户组格式:
[groups]
qianqiu=wshijun1,wshijun2//用户间以逗号分割
版本库目录格式:
[/]
@qianqiu=permissions //用户组名=权限
[/trunk/doc] //指定该用户只能访问该目录
Lwchuhao2=permissions //用户名=权限
[]可以有多种定义 /表示对全部的版本库设置权限,repos1:/表示对repos1设置权限,repos2:/www表示对repos2中的www项目设置权限,repos2:/www/example.com表示对repos2中的www项目的example.com目录设置权限。(注:svn客户端访问时也许按照设置的路径进行访问,如:svn://192.168.0.9/trunk/doc)可以用*来表示所有用户。
权限可以设置为w,r,wr和空,空表示没有任何权限。
注意:权限配置文件中出现的用户名必须在passwd文件中有定义过,对权限配置文件authz的修改会立即生效。
启动SVN
至此配置已完成。
1、启动SVN:
/usr/bin/svnserve –d –listen-port 9999 –r /opt/src/repositories/MCDRE
-d 以daemon方式运行
--listen-port 监听端口号,默认端口3690
-r 指定目录
2、检查是否启动成功:netstat –tunlp | grep 9999
tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 出现以上信息说明启动成功
3、停止SVN服务:killall svnserve
客户端访问
1、 Windows下安装TortoiseSVN:使用svn://192.168.0.9: 9999/访问
2、 Linux下# svn checkout svn://192.168.50.10:9999
附加:单版本库和多版本库的配置
权限文件authz在apche与svnserve服务器上的配置不同,单版本库和多版本库上的配置也有不同。
1.配置authz时,如果svnserve的启动参数 -r 所指定的目录为直接指定到版本库(称之为单库svnserve方式)
例如:svnserve -d -r d:\svn\project1
在这种情况下,一个svnserve只能为一个版本库工作。
authz如果配置成下面这样就是错的:
CODE: |
[groups] admin=user1 dev=user2 [project1:/] @admin=rw @doc=r |
应该配置成
CODE: |
[groups] admin=user1 dev=user2 [/] @admin=rw @dev=r |
因为[project1:/]表示project1的根目录,而按上面的启动参数,是没有库的概念的。
使用类似这样的URL:svn://192.168.0.1/ 即可访问project1
2.-r指定到版本库的上级目录(称之为多库svnserve方式)
如果使用以下命令启动svnserve:
CODE: |
svnserve -d -r d:\svn |
这种情况,一个svnserve可以为多个版本库工作,这是如果想限制指定库的指定目录,就应该指定具体的库,想像这样:
CODE: |
[groups] admin=user1 dev=user2 [project1:/] @admin=rw @doc=r |
如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录
使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1
这样的URL:svn://192.168.0.1/project2 即可访问project2
3.对中文目录进行权限控制时,应该将权限文件authz改为utf-8格式。