Chinaunix首页 | 论坛 | 博客
  • 博客访问: 211211
  • 博文数量: 109
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 890
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-24 17:06
文章分类

全部博文(109)

文章存档

2015年(1)

2014年(108)

分类: 系统运维

2014-05-30 15:53:09

使用svn进行多个版本库的linux教程如下:

如果当前有svnserve进程在运行,指令

1
killall svnserve

指定某目录为svn服务启动时所使用的根目录,指令

1
cd /data

 

1
mkdir svn

最后的路径为:/data/svn

接着创建多个svn版本库于/data/svn/目录下,指令

1
svnadmin create /data/svn/lesterlee1

 

1
svnadmin create /data/svn/lesterlee2


最后的目录结构应为这样:

/data/svn

/data/svn/lesterlee1

/data/svn/lesterlee2

将/data/svn/lesterlee1/conf/目录下的authz、passwd、svnserve.con拷贝至/data/svn/目录下,指令

1
cd /data/svn/lesterlee1/conf

 

1
cp ./authz ../../

 

1
cp ./passwd ../../

 

1
cp ./svnserve.conf

此时svn根目录的结构应为:

/data/svn

/data/svn/lesterlee1

/data/svn/lesterlee2

/data/svn/authz

/data/svn/passwd

/data/svn/svnserve.conf

下一步,配置svnserve.conf,指令

1
cd /data/svn

 

1
vi svnserve.conf

加入以下内容:

1
anon-access = none

 

1
auth-access = write

 

1
password-db = passwd

 

1
authz-db = authz

 

1
realm = svn

保存后,至此,svnserve.conf配置完毕,接下来配置用户信息

1
vi passwd

配置信息如下:

1
[users]

 

1
lesterlee = password

保存后,至此,passwd配置完毕,接下来配置用户权限

1
vi authz

配置的信息如下:

1
[groups]

#用户组

1
grouplesterlee= lesterlee

#将用户lesterlee加入用户组grouplesterlee中

1
[/]

 

1
lesterlee= rw

#读写权限

1
@grouplesterlee= rw

用户组读写权限

最后,启动svn服务即可,指令

1
svnserve -d -r /data/svn --config-file=/data/svn/svnserve.conf

注:后面的参数,–config-file=/data/svn/svnserve.conf是告诉svn服务,调用/data/svn目录下的svn配置文件,用来统一管理/data/svn目录下创建的子svn版本,统一使用配置文件中的用户信息、权限信息来管理各版本库。

注:
通常启动SVN服务,仅指定SVN版本库的根目录,如下:


svnserve -d -r /data/svn  
然后在/data/svn下创建多个版本库:


cd /data/svn   
svnadmin create lesterlee1 
svnadmin create lesterlee2 
再依次配置lesterlee1lesterlee2等版本库下的conf/svnserve.conf、conf/passwd、conf/authz文件。


问题便来了,因为大多数的时候,同一个用户需要用相同的帐号和密码去访问不同的版本库,这时的权限配置就不好处理了,以前看其他人的解决方法是在svnserve.conf中指定passwd和authz的路径时用相对路径指到同一个文件。这是一个可行的方法,但新增版本库的时候,就得更改svnserve.conf文件,不方便。


仔细看svnserve的帮助信息,大家都会发现有一个--config-file参数,这个参数就是用来指定svnserve.conf路径的,说到这,问题已经明了,只要在启动SVN服务的时候,指定--config-file参数,只要指定了此参数,所有的权限都由参数指定的svnserve.conf控制,而每个版本库conf目录下的svnserve.conf的配置都会忽略掉。


svnserve -d -r /data/svn --config-file /data/svn/svnserve.conf  


阅读(1013) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~