Subversion错误:Repository永久移动请重新定位

我在我的服务器上设置了subversion和apache。

如果我通过我的浏览器浏览它,它工作正常( http://svn.host.com/reposname )。 但是,如果我在我的机器上签出,我得到以下错误:

Command: Checkout from http://svn.host.com/reposname, revision HEAD, Fully recursive, Externals included Error: Repository moved permanently to 'http://svn.host.com/reposname/'; please relocate 

我检查了Apache的错误日志,但它什么也没说。 (现在呢 – 看看编辑)

我的存储库存储在:/ var / www / svn / repos /

我的网站存储在:/ var / www / vhosts / x / …

这里是子域的conf文件:

 <Location /> DAV svn SVNParentPath /var/www/svn/repos/ AuthType Basic AuthName "Authorization Realm" AuthUserFile /var/www/svn/auth/svn.htpasswd Require valid-user </Location> 

validation工作正常。

有谁知道可能是什么原因造成的?

– 编辑

所以我重新启动apache(再次)并尝试了一次,现在它给了我一个错误信息,但它并没有真正的帮助。 任何人有一个想法是什么意思?

 [Wed Mar 31 23:41:55 2010] [error] [client my.ip.he.re] Could not fetch resource information. [403, #0] [Wed Mar 31 23:41:55 2010] [error] [client my.ip.he.re] (2)No such file or directory: The URI does not contain the name of a repository. [403, #190001] 

– 编辑2

如果我做svn info它不给任何有用的:

 [root@server domain.com]# svn info http://svn.domain.com/repos/ Username: username Password for 'username': svn: Repository moved permanently to 'http://svn.domain.com/repos/'; please relocate 

我也尝试做一个本地签出( svn checkout file:///var/www/svn/repos/reposname )和工作正常(也添加/提交工作正常)。 所以这似乎是有一些与阿帕奇。

其他一些信息:

  • 我正在运行CentOs 5.3
  • Plesk 9.3
  • Subversion版本1.6.9(r901367)

– 编辑3

我尝试移动存储库,但没有任何区别。

selinux是禁用的,所以也不是这样。

我最近有这个…但事实certificate,我忘记了url:)

你必须做的一件事是确保你的svn位置不重叠任何apache可维护的网站。 也就是说,如果您将DocumentRoot设置为/ www,并将svn位置设置为/ www / svn,那么您将遇到麻烦 – Apache将不知道应该如何处理它(即svn特殊处理程序,或一个直的http处理程序)。

请参阅FAQ条目 。

尝试检出http://svn.host.com/reposname/ (注意斜线)。

检查这个网站: http : //www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-repository-moved-permanentl/

或许这个别名指向同一位置的是dav_svn.mod,并且在访问repo时apache和dav_svn之间存在竞争条件。

在提供的文章中有更好的解释

在dav_svn.conf中:

  <Location /svn> #Alias we are talking about DAV svn 

在apache_site.conf

 <IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin webmaster@localhost ServerName svn.za11.pl #Alias /svn "/mnt/nfs/svn/" ###Comment out or change this alias DocumentRoot /mnt/nfs/svn/ <Directory /mnt/nfs/svn/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Directory> ... rest of the file 

我有一个在svn.mydomain.com/sites/我的回购的vhost安装程序,我的vhost有一个DocumentRoot和Location块。 删除documentroot解决了这个问题。

我得到这个错误时,我错误地把我的回购下Apache服务的HTML树,在我的FC14机器基于RPM的颠覆和Apache安装。

SVNParentPath(在/etc/httpd/conf.d/subversion.conf中)应该指向DocumentRoot之外的一个目录。

我把我的回购提出来了,问题就消失了。

希望这可以帮助。

我知道这是旧的,但我发现它在谷歌,因为我有同样的问题。 确保端口7080不被计算机或服务器防火墙阻止

看起来你不是在做svn checkout ,而是在现有的仓库(?)中svn update

如果是,请执行以下操作:

svn switch --relocate http://svn.host.com/reponame

永久移动? 你能像HTTPFox之类的东西,并validationApache是​​否给你的仓库正确的状态代码(应该是200/OK )。 我相信状态码301对应于一个“永久移动”的URL,听起来像是svn客户端所指的。

也许在对话中有点迟,但是在apacheconfiguration中使用Alias来处理尾部的“/”时,我会看到这一点:Alias / svn / path / to / svn /

您还需要确保没有Alias指令映射到svn repos的位置。 我最近有这个

 Alias /svn /var/lib/svn <Location /svn> ... </Location> 

别名和位置指令适用于相同的path。

我只是有一个类似的问题,而不是当检查输出,但是当一个提交。

原因? 这个文件夹“obj \ Debug \ TempPE”,出于一些奇怪的原因,该文件夹“TempPE”不能将其提交到存储库

解决scheme?…逐个提交项目的所有其他文件夹,并从SVN服务器上删除该位置