Como posso transferir repositórios SVN do VisualSVN Server (Windows) para Apache SVN (Linux) corretamente?

Como posso transferir repositórios SVN do VisualSVN Server (Windows) para Apache SVN (Linux) corretamente?

Meu objetivo é transferir repositórios SVN antigos de um servidor Windows VisualSVN para um servidor Linux Apache SVN. O primeiro passo foi fazer um dump de todos os repositórios com o comando svnadmin dump. Depois disso carreguei esses dumps em meu servidor Linux. Não houve erros quando importei os repositórios. No entanto, para alguns arquivos, recebo um erro interno do servidor 500 ao confirmar alterações neles.

Para verificar o que está errado, abri alguns dos arquivos que geraram o erro em meu navegador. Descobri que várias últimas linhas desses arquivos estão corrompidas. Não há perda de dados, mas há caracteres estranhos no final do arquivo. Eles são exibidos por: “???” no meu navegador.

Tentei fazer múltiplas exportações, mas todas as exportações causarão o mesmo problema. É possível corrigir o repositório ou despejo? Você tem alguma ideia de como posso evitar que isso aconteça?

Responder1

  • AFAICR, houve algumas mudanças na estrutura | dados | armazenamento do repositório algumas versões atrás: será mais à prova de balas, se a versão do Subversion subjacente para VisualSVN Server e o lado do apache forem os mesmos (ou seja, atualizar o VisualSVN Server, se for necessário)
  • Do FS-view, o repositório no VisualSVN Server e no Apache do Linux são os mesmos - apenas diretórios com arquivos e alguns arquivos que não são do repositório. Assim, no caso mais fácil, você pode simplesmente copiar a árvore do RepoRoot para o novo servidor (corrigir o proprietário e as permissões de acordo com os novos requisitos do sistema operacional), adicionar o arquivo passwd (antigo) (se necessário), colocado fora da árvore do repositório e (antigo) authz -file (se necessário), migre a parte relacionada ao svn do httpd.conf do VisualSVN Server para o novo ambiente (aplicando todas as alterações necessárias, principalmente relacionadas ao caminho) e tenha repositórios no novo local

PS: eurealizadoessas migrações preguiçosas do tipo "copy-pase" sem grande dor de cabeça

500 erro interno do servidor ao confirmar

pode ter dois motivos principais: base de usuários não migrada e | ou ACLs esquecidas no arquivo authz (provavelmente ausente ou vazio) - dumps de repositórios não transferem esses arquivos

informação relacionada