Cuidado ao fazer migração de repositório subversion
Este final de semana eu fiz uma migração de um servidor subversion. Como eu esperava, teria algumas dores de cabeça pois o subversion é muito sensível. Fiz muitos testes durane o processo e consegui uma maneira que funcionasse.
No final das contas consegui migrar todo o repositório de um servidor para outro e manter a mesma URL de modo que ficasse transparente para os clients, evitando a necessidade de rodar um “svn switch –relocate” em cada working copy.
O problema é que quando fui usar hoje, dois dias depois, eu consegui acessar o repositório pela web, mas não consegui fazer um checkout.
A Lei de Murphy está aí para isso
Depois de perquisar um pouqinho, descobri que foi uma configuração que fiz por último e que é uma verdadeira pegadinha. No caso eu estou usando o Apache2 com mod_dav.
A pegadinha é que você não pode configurar o DocumentRoot com o mesmo path do SVNParentPath. Tem outros casos que causam o mesmo problema, basicamente o fato de existir um diretório no DocumentRoot com o mesmo nome do repositório controlado pelo DAV gera um conflito e o servidor se perde.
Mais informações sobre isso podem ser encontradas em: http://subversion.tigris.org/faq.html#301-error
Espero que seja útil!
Abraços e até a próxima.












Ainda bem que existe o Google nessas horas, pois eu cai na mesma pegadinha. E a página, apesar de me dizer exatamente o que está acontecendo, não ajuda muito (já havia chegado nela antes de chegar aqui).
É muito comum e até lógico as duas entradas terem o mesmo valor. Gostaria de saber como você resolveu o seu caso.
Comigo ficou mais ou menos assim para me livrar do erro:
DocumentRoot “/usr/home/svn”
(…)
DAV svn
SVNParentPath /usr/home/svn
(…)
(…)
Ops, esqueci das tags
.
[VirtualHost svn.mydomain.com.br:80]
ServerAdmin admin@mydomain.com.br
DocumentRoot “/usr/home/svn”
ServerName svn.mydomain.com.br
ServerAlias http://www.svn.mydomain.com.br
ErrorLog “/var/log/svn.mydomain.com.br-error_log”
CustomLog “/var/log/svn.mydomain.com.br-access_log” common
[Location /]
DAV svn
SVNParentPath /usr/home/svn
AuthzSVNAccessFile /usr/local/etc/svn_authz.conf
Satisfy Any
Require valid-user
AuthType Basic
AuthName “Repositorios SVN EMPRESA”
AuthUserFile /usr/local/etc/svnpasswd
[/Location]
[Directory /svn]
AllowOverride None
Order Deny,Allow
Allow from all
[/Directory]
[/VirtualHost]
Antônio Pessoa,
No meu caso eu só coloquei o DocumentRoot diferente do SVNParentPath.
No meu não tenho a diretiva [Directory /svn]
Abraço