Migrar todo o servidor SVN

2

Temos um servidor SVN com cerca de 55 GB de código e um segundo novo servidor SVN, que atualmente atende a um projeto.

Gostaria de mover todo o conteúdo do servidor antigo para o novo servidor, para descomissionar o antigo.

O servidor antigo tem 73 repositórios.

Posso svnadmin dump /usr/local/subversion/* e, em seguida, importar isso, ou preciso repo por repo?

    
por user27880 13.06.2014 / 16:25

1 resposta

4

Na maioria dos casos, você pode simplesmente copiar os diretórios do repositório do servidor antigo para o novo. Apenas tome cuidado para não sobrescrever o repositório que já existe no novo servidor! Se necessário, atualize seus arquivos de configuração para fazer referência aos novos repositórios (isso dependerá da sua configuração específica do servidor).

Você deve desligar os processos do Apache / svnserve enquanto estiver copiando os diretórios para que nada altere o conteúdo durante a cópia. Se isso não for desejável, você pode usar svnadmin hotcopy para copiar o repositório enquanto ele estiver "ativo". Para mais informações, consulte o livro do SVN: link

Em geral, você só precisa fazer um ciclo de despejo / carregamento de svnadmin nos seguintes casos:

  1. Você tem um repositório pré-SVN 1.0 e deseja atualizá-lo para funcionar com uma versão moderna.

  2. O (s) projeto (s) confirmado (s) no repositório existente fez uso do svn: externals que referenciava o antigo URL do repositório. Nesse caso, você precisa usar algo como svndumptool para fazer um regex no dumpfile para corrigir o problema. URLs antes de carregá-lo no novo servidor. (Nas versões mais recentes do SVN, você pode usar curingas para corrigir isso, mas pode ser necessário fazer um dump / load para corrigir rotações antigas.)

  3. Você está convertendo formatos de repositório (por exemplo, do BDB para o FSFS). Note que se você tem um repositório BDB, você deve considerar migrar para o FSFS, já que o BDB é depreciado a partir do SVN 1.8 .

  4. Seu repositório foi criado com uma versão mais antiga do SVN e você deseja aproveitar os novos recursos de desempenho e deltificação encontrados no SVN mais recente (por exemplo, SVN 1.6 adicionou compartilhamento de representação ).

Note que os casos # 1 & 2 são praticamente a única vez que você precisa para fazer um ciclo de despejo / carga.

Além disso, lembre-se de que um arquivo de despejo SVN não conterá os scripts de gancho do repositório, os arquivos de configuração do lado do servidor ou os bloqueios do repositório antigo. Ele conterá apenas dados versionados . Você precisará transferi-los manualmente depois que o novo repositório for carregado.

    
por 13.06.2014 / 19:33