1

亲爱的 Stackoverflow 社区!最近我的 svn 服务器坏了,我几乎尝试了所有方法,但我无法让它再次工作。

操作系统:树莓派

我做了什么:安装软件包:

apt-get install subversion libapache2-svn apache2 mysql-server

启用 dav_svn:a2enmod dav_svn

创建存储库:

$ mkdir -p /opt/svn/project1
$ mkdir -p /opt/svn/project2

添加它们:

$ svnadmin create --fs-type fsfs /opt/svn/project1
$ svnadmin create --fs-type fsfs /opt/svn/project2`

设置所有者:

$ chown -R www-data:www-data /opt/svn

创建的用户:

$ sudo htpasswd /etc/apache2/dav_svn.passwd weini

创建的存储库文件:

mkdir -p /tmp/projet1/trunk
mkdir -p /tmp/projet1/branches
mkdir -p /tmp/projet1/tags
mkdir -p /tmp/projet2/trunk
mkdir -p /tmp/projet2/branches
mkdir -p /tmp/projet2/tags

创建的/etc/apache2/mods-enabled/dav_svn.conf文件:

<Location /svn/>
        DAV svn
        SVNParentPath /opt/svn/
        SVNListParentPath On
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /etc/apache2/dav_svn.passwd
        Require valid-user
</Location>

导入它们:注意访问存储库http://不起作用;通过file://作品

Error: svn import /tmp/project1 http://localhost/svn/project1 -m "initialer Import" 
Error: svn import /tmp/project2 http://localhost/svn/project2 -m "initialer Import" 
Works: svn import /tmp/project1 file://opt/svn/project1 -m "initialer Import" 
Works: svn import /tmp/project2 file://opt/svn/project2 -m "initialer Import"`

其他都是默认设置!

错误信息:

RA layer request failed
svn: Unable to connect to a repository at URL 'http://server.weini.at/svn/project1'
svn: Server sent unexpected return value (405 Method Not Allowed)  in response to OPTIONS request for 'http://server.weini.at/svn/project1

系统日志:

no errors

Apache2/error.log:

[Wed Apr 09 22:29:29 2014] [error] [client 192.168.0.1] Could not fetch resource  information.  [-2, #0]
[Wed Apr 09 22:29:29 2014] [error] [client 192.168.0.1] (2)No such file or directory:   The URI does not contain the name of a repository.  [405, #190001]

当我尝试通过我的网络浏览器访问存储库时,一切正常:http: //i.stack.imgur.com/aNKzw.png

4

2 回答 2

6

尝试注释掉这一行:

SVNListParentPath On

-->

#SVNListParentPath On

(切换到关闭也应该有效)。

并重新启动你的 apache。

自上次 apache 升级以来,ParentPath 似乎存在问题。

感谢这篇(德语)帖子:http: //forum.ubuntuusers.de/topic/problem-mit-svn-server-nach-apache-update/#post-6513997

问题是,在此设置之后,无法在浏览器中列出您的父路径...。所以对我来说,这不是最终的解决方案。

干杯,马库斯

于 2014-04-11T20:27:19.897 回答
0

我注意到的几件事:

创建存储库:

$ mkdir -p /opt/svn/project1
$ mkdir -p /opt/svn/project2

添加它们:

$ svnadmin create --fs-type fsfs /opt/svn/project1
$ svnadmin create --fs-type fsfs /opt/svn/project2

创建 repo 时会创建 repo 目录:

$ mkdir -p /opt/svn
$ svnadmin create --fs-type fsfs /opt/svn/project1
$ svnadmin create --fs-type fsfs /opt/svn/project2

你也有这个:

创建的存储库文件:

mkdir -p /tmp/projet1/trunk
mkdir -p /tmp/projet1/branches
mkdir -p /tmp/projet1/tags
mkdir -p /tmp/projet2/trunk
mkdir -p /tmp/projet2/branches
mkdir -p /tmp/projet2/tags

您应该svn mkdir用来制作这些目录。您只是在创建一堆与您的项目无关的目录:

$ svn co http://localhost/svn/project1
$ cd project1
$ svn mkdir trunk branches tags
$ svn commit

或者...

$ REPO=http://localhost/svn/project2
$ svn mkdir $REPO/trunk $REPO/branches $REPO/tags

file://有效的事实http://意味着您在使用 Apache 时遇到问题。更改配置后是否重新启动了 Apache?

$ /etc/init.d/httpd graceful   # Restarts gracefully...
于 2014-04-10T02:05:01.207 回答