Erro do Subversion: Repositório movido permanentemente para ser deslocado

22

Eu configurei o subversion e o apache no meu servidor.

Se eu navegar para ele através do meu navegador, ele funcionará bem ( link ). No entanto, se eu fizer um checkout na minha máquina, recebo o seguinte erro:

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  

Eu verifiquei o log de erros do apache, mas ele não diz nada. (faz agora - veja editar)

Meus repositórios são armazenados em: / var / www / svn / repos /

Meu site é armazenado em: / var / www / vhosts / x /...

Este é o arquivo conf do subdomínio:

<Location />
   DAV svn
   SVNParentPath /var/www/svn/repos/

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

A autenticação funciona bem.

Alguém sabe o que pode estar causando isso?

- Editar

Então eu reiniciei o apache (novamente) e tentei novamente e agora ele me deu uma mensagem de erro, mas não ajuda muito. Alguém tem uma ideia do que isso significa?

[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]

- Editar 2

Se eu fizer svn info , não dará nada de útil:

[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

Eu também tentei fazer um checkout local ( svn checkout file:///var/www/svn/repos/reposname ) e isso funciona bem (também adicionar / confirmar funciona bem). Então parece que tem algo a ver com o apache.

Algumas outras informações:

  • Estou executando o CentOS 5.3
  • Plesk 9.3
  • Subversion, versão 1.6.9 (r901367)

- Editar 3

Eu tentei mover os repositórios, mas isso não fez nenhuma diferença.

o selinux está desativado, então não é isso também.

    
por Bart S. 31.03.2010 / 22:30

11 respostas

22

Eu tive isso recentemente ... mas acabou que eu tinha esquecido o URL:)

Uma coisa que você deve fazer é garantir que o seu svn Location não se sobreponha a nenhum site que possa ser acessado pelo apache. ou seja, se você definir o seu DocumentRoot como / www, e o seu svn Location como / www / svn ... então você está com problemas - o Apache não sabe com o que deve ser servido (isto é, os manipuladores especiais do svn) , ou um manipulador HTTP direto).

Veja a entrada da FAQ .

    
por 04.04.2010 / 02:23
2

Tente verificar http://svn.host.com/reposname/ (observe a barra final).

    
por 01.04.2010 / 22:35
2

Verifique esta web: link

Provavelmente o alias aponta para o mesmo lugar que o congfigured é dav_svn.mod, e há uma condição de corrida entre o apache e o dav_svn enquanto acede ao repo.

É melhor explicado no artigo fornecido

No dav_svn.conf:

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

Em 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
    
por 10.08.2011 / 12:42
1

Eu tenho uma configuração de vhost com meu repositório em svn.mydomain.com/sites/ meu vhost tinha um bloco DocumentRoot e Location. Remover o documentroot resolveu este problema.

    
por 06.12.2011 / 14:55
1

Recebi este erro quando, por engano, coloquei meu repositório sob a árvore html servida pelo Apache, na minha máquina FC14 com subversão baseada em RPM e instalações do apache.

O SVNParentPath (em /etc/httpd/conf.d/subversion.conf) deve apontar para um diretório fora do DocumentRoot.

Mudei meu repo e o problema desapareceu.

Espero que isso ajude.

    
por 29.02.2012 / 22:36
1

Eu sei que isso é antigo, mas achei no Google porque tive o mesmo problema. Certifique-se de que a porta 7080 não esteja bloqueada pelo computador ou pelo firewall do servidor

    
por 06.09.2012 / 11:18
0

Parece que você não está fazendo svn checkout , mas sim svn update em um repositório existente (?).

Se sim, faça isso:

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

    
por 31.03.2010 / 22:48
0

Movido permanentemente? Você pode algo como HTTPFox ou algo assim e verificar se o Apache está fornecendo o código de status correto para o seu repositório (deve ser 200/OK ). Eu acredito que o código de status 301 corresponde a uma URL que foi "movida permanentemente" e que soa como o que o cliente svn está se referindo.

    
por 31.03.2010 / 23:55
0

Talvez um pouco atrasado na conversa, mas vejo isso ao usar um Alias na configuração do apache para lidar com o '/':    Alias / svn / path / para / svn /

    
por 29.04.2010 / 18:45
0

Você também precisa se certificar de que nenhuma diretiva Alias seja mapeada para o local do svn repos. Eu tive isso recentemente quando tive

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

em que o alias e a diretiva de localização se aplicam ao mesmo caminho.

    
por 19.05.2010 / 21:30
0

Acabei de ter um problema semelhante não ao CHECKING OUT, mas quando um COMMIT foi feito.

O motivo? esta pasta "obj \ Debug \ TempPE", por alguma razão estranha que a pasta "TempPE" não é posible para COMITÁ-LO ao repositório

Solução? ... COMITAR todas as outras pastas do projeto uma por uma e remover essa localização do servidor SVN

    
por 25.03.2011 / 15:38