Eu configurei o subversion e o apache no meu servidor.
Se eu navegar através do navegador da web, ele funcionará bem ( http://svn.host.com/reposname ). 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 a edição)
Meus repositórios estão armazenados em: / var / www / svn / repos /
Meu site está armazenado em: / var / www / vhosts / x / ...
Aqui está o arquivo conf para o 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 isto?
- Editar
Então, reiniciei o apache (novamente) e tentei novamente, e agora isso me dá uma mensagem de erro, mas isso realmente não ajuda. Alguém tem uma idéia 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
isso não dá nada ú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
Tentei mover os repositórios, mas não fez nenhuma diferença.
O selinux está desativado, então também não está.
fonte
Options +indexes
isso realmente não deve fazer nada útil em um local svn.Respostas:
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 por apache. ou seja, se você definir seu DocumentRoot como / www e seu local svn como / www / svn ... então você estará com problemas - o Apache não saberá com o que deve ser servido (ou seja, os manipuladores especiais svn , ou um manipulador http direto).
Veja a entrada da FAQ para isso .
fonte
Alias svn /repositories
e depois configurado tudo<Location /svn/ >
. O problema era exatamente o mesmo do link da FAQ, embora misteriosamente funcionasse perfeitamente por um mês e depois parasse na quarta-feira à tarde, na hora do chá. Se o seu repositório estiver em "/", você terá uma sobreposição com a diretiva DocumentRoot.Tente fazer o check-out
http://svn.host.com/reposname/
(observe a barra à direita).fonte
Verifique este site: http://www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-repository-moved-permanentl/
Provavelmente, o alias aponta para o mesmo local que o congfigured é dav_svn.mod e existe uma condição de corrida entre o apache e o dav_svn ao acessar o repositório.
É melhor explicado no artigo fornecido
No dav_svn.conf:
No apache_site.conf
fonte
Eu tenho uma configuração de vhost com meu repositório no
svn.mydomain.com/sites/
meu vhost tinha um bloco DocumentRoot e Location. A remoção da raiz do documento resolveu esse problema.fonte
Eu recebi esse erro quando coloquei meu repositório por engano sob a árvore html servida pelo Apache, na minha máquina FC14 com instalações de subversão e apache baseadas em RPM.
SVNParentPath (em /etc/httpd/conf.d/subversion.conf) deve apontar para um diretório fora do DocumentRoot.
Mudei meu repositório e o problema desapareceu.
Espero que isto ajude.
fonte
Sei que é antigo, mas o encontrei no Google porque tive o mesmo problema. Verifique se a porta 7080 não está bloqueada pelo firewall do computador ou do servidor
fonte
Parece que você não está fazendo
svn checkout
, massvn update
em um repositório existente (?).Se sim, faça o seguinte:
svn switch --relocate http://svn.host.com/reponame
fonte
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 (deveria ser
200/OK
). Acredito que o código de status301
corresponde a uma URL que "se moveu permanentemente" e que parece com o que o cliente svn está se referindo.fonte
http://svn.server.com/repos
) ele funciona muito bem, recebo "repos - Revisão 0: /" e tudo mais. O problema ocorre apenas quando faço um checkout.Talvez um pouco tarde na conversa, mas vejo isso ao usar um Alias na configuração do apache para lidar com o '/' à direita: Alias / svn / path / to / svn /
fonte
Você também precisa garantir que nenhuma diretiva Alias seja mapeada para o local dos repositórios svn. Eu tive isso recentemente quando tive
onde o alias e a diretiva location se aplicam ao mesmo caminho.
fonte
Eu só tive um problema semelhante não no check-out, mas quando um COMMIT foi feito.
O motivo? esta pasta "obj \ Debug \ TempPE", por algum motivo estranho, que a pasta "TempPE" não é possível para COMITÁ-la ao repositório
Solução? ... COMMIT todas as outras pastas do projeto uma por uma e remova esse local do servidor SVN
fonte