Migração de subdiretório de um repositório Subversion
Esses dias precisei migrar um projeto de um servidor para o outro e quebrei um pouco a cabeça com os comandos do SVN para executar o que eu precisava.
Eu tinha uma estrutura assim:
REPO
–/SUBDIR
—-/PROJ1
—-/PROJ2
…
E eu precisava migrar apenas um projeto, no caso o PROJ1 por exemplo. Então, a primeira questão era como gerar o dump somente do meu projeto.
A primeira tentativa foi usar o comando svndumpfilter em conjunto com o svnadmin dump da seguinte maneira:
svnadmin dump /path/to/repo | svndumpfilter include /PROJ1 > repo.dmp
A intenção era que ele gerasse o dump apenas do projeto que estou pedindo. Mas pra minha surpresa ele não fez isso. Mas também não gerou de todo mundo. Na verdade não gerou de ninguém. Só gerou as revisions, sem arquiuvo algum.
Então, descobri que pra fazer o que eu queria, eu precisava passar o diretório parent do projeto que estava exportando
O comando ficou:
svnadmin dump /path/to/repo | svndumpfilter include SUBDIR/PROJ1 > repo.dmp
Aí sim, o dump foi gerado com sucesso. E para importar a lógica é a mesma. Ou seja, tem que existir aquele mesmo diretório “SUBDIR” dentro de seu repositório para que de certo.
Seu novo repositório deve ter uma estrutura como:
NOVO_REPO
—-/SUBDIR
E o comando para fazer o load é:
svnadmin load /path/do/NOVO_REPO < /path/para/seu/repo.dmp
Depois é só fazer o relocate, e pronto!