freeBSD创建svn仓库


1:创建仓库
svnadmin create /home/svn/reins(reins为我的代码仓库)

同时修改权限 chown -R svn:svn /home/svn/reins

2: 修改配置文件,svn的配置文件在/home/svn/reins/conf/下,三个配置文件分别为:passwd authz svnserve.conf

下面分别记述三个配置文件:

(1). passwd:(添加项目开发中的组和用户,看着本来的例子写就可以了)

[users]
p1_admin1 = p1_admin1
p1_d1 = p1_d1

(2).authz (这个文件中配置每个组或用户的读写权限,一定要小心,看着原来的例子写,一不小心就给你来个授权失败,尤其是那个路径[reins:/],我就在这里栽倒的!)

配置authz时,注意svnserve启动参数-r所指定的目录。

这里有两种情况:
A:-r直接指定到版本库(称之为单库svnserve方式)
比如,有一个库project1,位于D:\svn\project1
使用以下命令启动svnserve

svnserve -d -r D:\svn\project1

在这种情况下,一个svnserve只能为一个版本库工作.authz文件如果配置成下面这样就是错的,

[groups]
admin=user1
dev=user2
[project1:/]
@admin=rw
@doc=r

应该配置成

[groups]
admin=user1
dev=user2
[/]
@admin=rw
@doc=r

因为[project1:/]表示库project1的根目录,而按上面的启动参数,是没有库的概念的。
使用类似这样的URL:svn://192.168.0.1/ 即可访问project1

B:-r指定到版本库的上级目录(称之为多库svnserve方式)
同样,有一个库project1,位于D:\svn\project1
如果使用以下命令启动svnserve

svnserve -d -r D:\svn

这种情况,一个svnserve可以为多个版本库工作,这时如果想限制指定库的指定目录,就应该指定具体的库,像这样

[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).svnserver.conf(注意没一行去掉#号后要顶格写,听别人说否则会报错,我没有试过)

#去掉#[general]前面的#号
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#
password-db = passwd
#认证用户的权限定义文件
authz-db = authz

3:启动svnserver服务
svnserver -d -r /home/svn/
如果提示已经有一个svnserver进程,可以用命令killall svnserver 来关闭该进程。

4.现在就可以在客户端用TortoiseSVN来checkout了
svn://172.31.12.38/reins




相关阅读:
De facto standard 世界上不可思议的事实标准
FTP的安全问题 《转》
asp.net 页面间传值方法小结
Linux系统下配置CVS服务器
用asp实现访问远程计算机上MDB access数据库文件的方法
没有光驱不用刻录在PE下安装Win7的方法及Status:0xc000000f解决办法
JavaScript修改css样式style
一张图完成导航条==CSS
ASP.NET图形化的曲线图类(1)
AJAX根据城市名,自动完成相应的城市信息
js 图片上传前大小长宽验证代码
如何保持数据库输出格式不变
jquery pagination插件实现无刷新分页代码
ADO.NET Entity Framework(5)esql (二)
快速导航

Copyright © 2016 phpStudy |