ubuntu搭建svn遇到的问题及解决办法

情况一、

svn: /opt/svndata/repos/conf/svnserve.conf:12: Option expected

原因:svn不识别配置文件中  开头带空格的参数

权限配置:

#分组:
[groups]
group_admin = wws,aaa,bbb
group_user1 = sj,ccc
group_user2 = sy,dd,eeee
group_user3 = lxt
group_user4 = ss

#设置对根(即SVN)目录下,所有版本库的访问权限
[/]
* = r #所有登录用户默认权限为只读
@group_admin = rw #可以分配给组,该组有读写权限
wws = rw #也可以像这样分配给指定用户

在修改配置文件(authz)后,客户端可能会报“Invalid authz configuration”的错误提示!
客户端没有提示错误原因,但在服务器端有一个方法,可以检查配置文件(authz)错在了哪里;
具体方法如下:
root@server:~# svnauthz-validate /data/svn/LQPLAY/conf/authz
svnauthz-validate: /data/svn/LQPLAY/conf/authz:167: Option must end with ':' or '='
它查出了是配置文件(authz)的第167行,出现了错误。
然后,可以用如下命令,编辑它并保存:
root@server:~# vi /data/svn/LQPLAY/conf/authz
Shift+: set number          (显示行号)
Shift+: 167            (直接跳转到167行)
我发现是本该写为(gaojs = rw),不小心写成了(gaojs - rw)。
字母键(I-Insert),从浏览模式,切换到插入模式;
(Shift+:, 从浏览模式,切换到底行命令模式)
(Esc,从其他模式,退出到浏览模式)
修改后保存退出!
Shift+: wq             (Write & Quit)

 情况二、SVN的“Invalid authz configuration”错误的解决方法

转自:http://blog.csdn.net/gaojinshan/article/details/18218009

查看SVN的目录在哪里?
root@server:~# whereis svn
svn: /usr/bin/svn /usr/bin/X11/svn /usr/share/man/man1/svn.1.gz
查看SVN的进程是哪些?
root@server:~# ps aux | grep svn               
root      1527  0.0  0.0  69640  1092 ?        Ss   10:53   0:00 svnserve -d -r /data/svn/LQPLAY
root      5144  0.0  0.0  13592   936 pts/2    S+   11:58   0:00 grep --color=auto svn
启动SVN的服务(-d:Deamon; -r:Root)
root@server:~# svnserve -d -r /data/svn/LQPLAY
查看SVN的服务是否正常(端口号3690是否存在)
root@server:~# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      1527/svnserve 

 

1、checkout时,提示:URL svn://192.168.1.99/svntest doesn't exist...

奇怪,怎么会提示库不存在呢?肯定是哪里配置问题。后来尝试了半天,也在网上搜索了很久,终于发现问题所在。

如果你的svn库的路径为:/home/svn/svntest

那么你启动时,不能用命令:

svnserve -d -r /home/svn/svntest

而要用命令:

svnserve -d -r /home/svn/

2、commit时,提示:Authorization failed

开始一直以为是authz文件配置得不对,一直尝试,一直修改,还是不行,郁闷了。在确定authz的配置完全没问题后,开始查其它两个配置文件的问题。后来终于发现问题出在svnserve.conf这个文件。以下四行:

# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz

是被注释掉的,虽然文件说明里面说默认就是按注释掉的配置来执行,但好像并不是这样。放开注释:

anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

问题解决。

PS:有些童鞋问文件上传到服务器后存放在服务器的哪个地方。

答:一般放在/home/svn/svntest/db/revs(根据我自己的目录结构)里面

 

svn: No repository found in 'svn:..解决方案

svn服务未启动或者是启动的时候未指定svn仓库路径

使用如下命令:

sudo svnserve -d -r /var/svn

后面的目录是你svn服务的仓库路径

另外要使用sudo取得管理员权限,否则可能在提交代码的时候出现权限问题

 

你可能感兴趣的:(ubuntu搭建svn遇到的问题及解决办法)