Corrupção do repositório SVN - svnrepo/db/corrente

Corrupção do repositório SVN - svnrepo/db/corrente

Recentemente, um dos repositórios no meu servidor SVN foi corrompido. Após a verificação, descobrimos que havia um problema com o arquivo svnrepo/db/atual foi corrompido devido a setores ruins no meu hardisk. Eu tentei fazer o checkout deste repositório, mas falhei.

Como recuperar o repositório SVN corrompido -

Antes de iniciar a recuperação, devemos saber sobre este arquivo. Este arquivo contém o número de revisão mais recente do seu repositório. Em cada compromisso, o servidor SVN aumenta esse valor em +1 e mantenha isso na última revisão.

Agora, se você se lembra da versão do seu repositório, basta recriar novo arquivo e colocar esse número neste arquivo. Mas se você não se lembra, então o problema começa, mas não se preocupe. Siga as etapas abaixo para encontrar o número da revisão.

  • Insira qualquer número -

    Digite um número e tente mantê -lo mais alto do que o esperado pela última revisão. No meu caso, coloquei 99999 em db/arquivo atual.

    [Email Protected]: ~ $ CAT DB/atual 99999 
  • Repositório de backup -

    Agora use o seguinte comando para fazer backup deste repositório. Quando você executa o seguinte comando, ele pode terminar com erros como abaixo.

    [Email Protected]: ~ $ svnadmin dump/path/to/repo>/backup/myrepo.despejo * revisão despejada 0. * Revisão despejada 1… * Revisão despejada 576. * Revisão despejada 577. * Revisão despejada 578. svnadmin: e160006: Nenhuma revisão 579  

    Conforme sua produção, conseguimos que nosso repositório tenha 578 revisões. Você pode simplesmente colocar esse valor no seu arquivo de banco de dados/atual. Mas se houver mais arquivos corrompidos, continue a seguir as etapas.

  • Repositório de backup novamente -

    Agora temos o último número de revisão, então especifique as revisões de 0 para a última revisão para backup.

    [Email Protected]: ~ $ svnadmin dump -r 0: 578/path/to/repo>/backup/myrepo.jogar fora 
  • Recrie o novo repositório -

    Agora remova o antigo repositório corrompido e crie um novo com o mesmo nome ou outro nome.

    [Email Protected]: ~ $ MV/PATH/TO/repo/backup/[Email Protected]: ~ $ svnadmin create/path/to/repo 
  • Repositório de carga do backup -

    Agora carregue dados do repositório do arquivo de backup usando o seguinte comando.

    [Email protegido]: ~ $ svnadmin load/path/to/repo < /backup/myrepo.dump