如何克服 SVN — 无法打开请求的 SVN 文件系统

如何克服 SVN — 无法打开请求的 SVN 文件系统

我遵循了https://help.ubuntu.com/8.04/serverguide/C/subversion.html 但当我尝试这样做时:

svn co https://localhost/svn

我得到:

 svn: Repository moved permanently to 'https://localhost/svn/'

...当我这样做时:

 svn co https://localhost/svn/

我再次遇到同样的错误。当我尝试:

 svn co https://localhost/svn/testrepo

我得到:

 svn: Could not open the requested SVN filesystem

在 Apache 日志中我看到:

 can't open file /home/myname/testrepo/testrepo/format

在我的 apache2.conf 中我有:

<Location /svn>
     DAV svn
     SVNParentPath /home/myname/testrepo
     SVNListParentPath On
     AuthType Basic
     AuthName "myrepo"
     AuthUserFile /etc/subversion/passwd
     <LimitExcept GET PROPFIND OPTIONS REPORT>
         Require valid-user
     <LimitExcept>
</Location>

我之前也尝试过用“SVNPath”代替“parentpath”,但没有成功。

请帮帮我,我很绝望!!我尝试了所有我能想到的路径组合……

答案1

看起来 SVNParentPath 直接指向您的存储库,而不是指向包含您的存储库的目录。

创建一个名为的文件夹项目在你的主文件夹中

mkdir /home/myname/projects

将您的存储库移至项目

mv /home/myname/testrepo /home/myname/projects

更改所有权项目到 www-data。

sudo chown -R www-data:www-data /home/myname/projects

在 apache2.conf 中,将 SVNParentPath 的声明更改为

SVNParentPath /home/myname/projects

重新启动 Apache 服务器。

现在尝试检查您的存储库。

svn co https://localhost/svn/testrepo

答案2

对于 Windows 用户(如果有人在 Windows 下遇到类似问题):

问题可能是文件访问权限。

我通过将存储库移动到 Apache 可以读取和写入文件的位置解决了我的问题。 在我的例子中 (CollabNet Subversion Edge),路径是C:\csvn\data\repositories

答案3

转到 SVNParentPath 目录这里我的目录路径是 /var/www/svn

cd /var/www/svn/

在 SVNParentPath 下创建存储库

svnadmin 创建 repo_name

授予 Apache 权限

chown -R apache:apache repo_name/

创建 SVN 用户

htpasswd -m /etc/httpd/conf/.htpasswd 用户名

分配权限

vi /etc/svnusers [仓库名称:/]

用户名=rw

重启 Apache 服务

服务 httpd 重启

相关内容