我在我的服务器上设置了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
)和工作正常(也添加/提交工作正常)。 所以这似乎是有一些与阿帕奇。
其他一些信息:
– 编辑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服务器上删除该位置