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

2

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 despejos no 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 no meu navegador da web. Descobri que várias últimas linhas desses arquivos estão corrompidas. Não há dados perdidos, mas há caracteres estranhos no final do arquivo. Eles são exibidos por: “???” no meu navegador da web.

Eu tentei fazer várias 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 eu posso evitar que isso aconteça?

    
por Laurence 20.12.2013 / 20:32

1 resposta

1

  • AFAICR, houve algumas mudanças na estrutura do repositório | data | storage algumas versões atrás: será mais à prova de bala, se a versão do Subversion sob o capô do VisualSVN Server e do lado do apache for a mesma (ou seja, atualizar o VisualSVN Server , se necessário)
  • Do FS-view, o repositório no VisualSVN Server e o Apache do Linux são os mesmos - apenas diretórios com arquivos e alguns arquivos não-repositórios. Assim, no caso mais fácil, basta copiar a árvore do RepoRoot para o novo servidor (corrigir proprietário e permissões de acordo com os novos requisitos do sistema operacional), adicionar (antigo) arquivo passwd (se necessário), colocado fora de repo-tree e autenticação (antiga) -file (se necessário), migre a parte relacionada ao svn do httpd.conf do VisualSVN Server para o novo ambiente (com a aplicação de todas as alterações necessárias, principalmente relacionadas ao caminho) e tenha repositórios no novo local

PS: Eu executei essas migrações "copy-pase" preguiçosas sem muita dor de cabeça

500 internal server error when committing

pode ter duas razões principais: não migrou userbase e | ou ACLs esquecidas no arquivo authz (provavelmente ausente ou vazio) - os dumps de repos não transferem esses arquivos

    
por 21.12.2013 / 11:42