Como faço para exportar uma parte de um repositório SVN com dependências?
-
06-07-2019 - |
Pergunta
Eu estou tentando migrar uma parte de um repositório SVN usando svnadmin dump
.
A ferramenta svndumpfilter fornecidos não consegue copiar / mover / renomear dependências diretórios não incluídos na exportação.
Existe uma ferramenta que pode gerenciar essas dependências?
Solução
Eu encontrei um script Python por Simon Tatham chamado svndumpfilter2 , que tenta lidar com dependências simples (eu encontrei algumas limitações, embora).
Você também pode verificar um artigo sobre sua migração para subversão e a motivação para o script.
Outras dicas
Com dependências quer dizer aqueles especificados pelo svn propriedade:? Externa
Se sim, eu acho que você deve passar para svndumpfilter também os caminhos referrend na propriedade.
Por exemplo, se o seu projeto está em http://host/project
e a propriedade svn: externos está definido para http://host/dependencies
você pode fazer algo como
svndumpfilter include http://host/project http://host/dependencies < total.dump > project.dump
Você não pode se livrar deste problema. Se você copiou um diretório / arquivo, você tem que incluir ambos (origem e destino) em svndumpfilter.
No entanto, você pode fazer alguns truques:
Se você despejar um repositório não de revisão 0, mas dizem por exemplo a partir da revisão 100, você receberá um novo repositório com a revisão 1-100 desapareceu. No entanto, seu repositório de destino tem todos os arquivos / pastas na revisão 1, como o repositório de origem na revisão 100. Desta forma, você pode se livrar de dados versionados sem perder a HEAD-Revisão.
Você pode tentar despejo / carregar o seu repositório de origem até a primeira cópia em um repositório "flat", em seguida, adicione as lixeiras restantes para ele. Desta forma, você pode ignorar a cópia de problemático revisão, como seus arquivos já estão no encaixe (destino) do diretório.