Pergunta sobre svn, version-control – Copiar parte do repo SVN para novo repo?

8

Atualmente, eu tenho um grande repositório SVN com vários projetos diferentes, como segue:

<code>/
 Project1/
          trunk/
          tags/
          branches/
 Project2/
          trunk/
          tags/
          branches/
 Project3/ 
          (etc...)
</code>

No entanto, agora estou tentando dividi-lo em repositórios separados (por vários motivos) e gostaria de seguir o seguinte para cada projeto:

<code>/
 trunk/
 tags/
 branches/
</code>

Se possível, todo histórico e elementos externos devem permanecer intactos. No entanto, não tenho certeza se isso pode realmente ser feito. Eu tenho visto várias questões semelhantes a isso em SO, mas nenhuma aborda totalmente o problema que tenho aqui. Basicamente, estou tentando "extrair" um subdiretório e todo o seu conteúdo com histórico do repositório antigo e plopar todo o lote em seu próprio (novo) repositório.

Eu estou pedindo o impossível?

Ótima pergunta +1. Deve ser possível. Você provavelmente terá e aneurisma antes do final embora. Iain Holder
"Não relacionado programação" - J / K, eu só estou ficando irritado com este tipo de comentários, e precisa de um pouco de vapor :) +1 e fave'd :) cwap

Sua resposta

2   a resposta
9

Usar

<code>svnadmin dump path/to/repository > repo.dmp
</code>

e depois usarsvndumpfilter para carregar apenas uma subárvore em um novo repositório.

Sim ... é isso que eu quero dizer :) John Weldon
Obrigado Stefan (e John), isso me levou asvnbook.red-bean.com/en/1.5/… que aborda o meu problema exato. Mark Embling
Note que esta solução saiProjectN como o diretório de nível superior do novo repositório. (Por exemplo, todos os caminhos começam comProjectN/) O link informa como importar o novo repo sem o prefixo, mas deve editar o dump manualmente, o que com repositórios grandes ou com arquivos binários não é prático. xOneca
4

Desde SVN 1.7 você poderia usar

<code>svnrdump dump path/to/repository > dump
</code>

para pegar o lixo. Enquanto a solução Stefans funciona, ela requer acesso ao servidor que hospeda o repositório. O svnrdump funciona através da rede com qualquer repositório que você possa ler.

Perguntas relacionadas