当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > freeBSD创建svn仓库

Unix/Linux
Linux crontab定时执行任务 命令格式与详细例子
linux 查看用户及用户组的方法
让Linux系统有效防御ARP攻击的实用技巧
Linux 常用软件列表
linux wget 一个强大的下载命令
linux 常用脚本、命令
linux 磁盘配额 简单介绍
Linux服务器架设笔记 Squid服务器配置
ubuntu intel 集成显卡安装
ubuntu 9.04 X3100 显卡开启3D特效
Ubuntu 8.10 Server Ruby 的安装方法
Ubuntu root帐户密码修改
ubuntu下apt-get 命令参数
Ubuntu Linux下实现QQ的三种方式
Ubuntu 8.04中建立PHP+MySQL环境
Ubuntu常用软件大全
Ubuntu系统下安装Aircrack-ng
Ubuntu实现FTP功能
ubuntu 字体美化实现方法
ubuntu下netbeans汉字显示残缺问题

Unix/Linux 中的 freeBSD创建svn仓库


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 101 ::
收藏到网摘: n/a

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