linux下配置svn服务

linux下配置svn服务



一、安装

使用yum安装非常简单:

yum install subversion


二、配置

我们这里在 /home下建立一个名为 svn 的仓库(repository),以后所有代码都放在这个下面,创建成功后在svn下面多了几个文件夹。

[root@localhost /]# cd /home

[root@localhost home]# mkdir svn 

[root@localhost home]# svnadmin create /home/svn 

[root@localhost home]# ls svn 

conf db format hooks locks README.txt

我们这里特别关注一下 conf 文件夹,这个是存放配置文件的

[root@localhost home]# cd svn/conf 

[root@localhost conf]# ls 

authz passwd svnserve.conf

其中:

· authz 是权限控制文件

· passwd 是帐号密码文件

· svnserve.conf SVN服务配置文件

接下来我们依次修改这3个文件。


1.配置passwd

[root@localhost conf]# vi passwd 

[users] 

boss = 123456 

other = 123456

上面的例子中我们创建了2个用户,一个boss,一个other

 

2.配置authz

[root@localhost conf]# vi authz 

[/] 

boss = rw

other = r 

* =

上面配置的含义是,boss/home/svn/下所有文件具有可读可写权限,other只有只读权限,除此之外,其它用户均无任何权限,最后一行 *= 很重要不能少。


3. 配置svnserve.conf

1).放开如下注释:

#控制非鉴权用户访问版本库的权限。取值范围为"write""read""none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值:read

anon-access = none

 

#控制鉴权用户访问版本库的权限。取值范围为"write""read""none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值:write

auth-access = write

 

#指定账户密码配置文件,当前文件夹下的passwd文件

password-db = passwd

 

#权限配置文件,当前文件夹下的authz文件

authz-db = authz

 
#版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件。缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)  

realm = first


2).注意:

· 最后一行的realm记得改成你的svn目录

· 打开注释时切记前面不要留有空格,否则可能有问题


3).启动与停止

svnserve -d -r /home/svn  (启动)

killall svnserve  (停止)

上述启动命令中,-d 表示守护进程, -r 表示在后台执行。

 

3.客户端连接

这里使用TortoiseSVN,没有的同学请自己下载,输入地址svn://你的IP/仓库名字 即可,不出意外输入用户名和密码就能连接成功了。默认端口3690如无法链接可以查看端口是否开启。

 

三、部分错误解决办法

1.authorization failed(svn授权失败)

错误主要是conf/auth文件配置错误,可以参考如下配置:

[aliases]

# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe
#此处的admin 是定义一个组,后面的值用逗号隔开,表示组内包含的用户

admin=qinwx,liwz

# [/foo/bar]

# harry = rw

# &joe = r

# * =

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

此处的[works:/]代表启动目录下的works版本库的根目录。@admin=rw 表示admin群组的用户具有读写权限

[works:/]

@admin=rw

然后你运行svnserve启动服务的时候 -r参数需要制定works上一级目录,要不然也会出现

authorization failed(svn授权失败错误!

示例路径pwd/alidata/svn/works

svnserve -d -r /alidata/svn

这样一来auth文件里的[works:/]参数才起作用!

 

2.在修改文件后show log无法显示日志

上面的时间会自动在2016年和1970年间跳,而且设置不了时间,或者直接就是不现实任何日志信息。
解决方法:
1.编辑svnserve.conf,设置“anon-access=none
2.authz中添加 
[/]
* = 

 

 

 

 



猜你喜欢

转载自blog.csdn.net/qq_35888875/article/details/79746877