Pergunta

Eu estou administrando um repositório svn para um projeto onde a fonte não foi importada com um único diretório de nível superior. Como resultado, há cerca de 15 'projetos' separados em vez de um. Como posso mesclar-los em uma pasta, mantendo o histórico de alterações?

* dica:. Svn move não trabalho neste caso

[editar] whoops, joguete dos Combinando vários repositórios SVN em um

Foi útil?

Solução

Se você não se preocupam com retenção de toda a história de um dos repositórios, você pode simplesmente criar um novo diretório sob o repositório de um projeto, em seguida, importar o outro.

Se você se preocupa com mantendo a história de ambos, então você pode usar 'svnadmin dump' para despejar um repositório, e 'load svnadmin' para carregá-lo em outro repositório. Os números de revisão será desligado, mas você ainda tem a história.

Copiado aqui: http://subversion.tigris.org/faq.html # multi-merge

Outras dicas

Talvez eu tenho trabalhado muito com o martelo de controle de versão distribuído e tudo o que eu vejo neste momento são distribuídos unhas. Mas, mais uma vez tenho que dizer que este é provavelmente um trabalho para DVCSs.

Gostaria de tentar andar com git-svn ou algo parecido. Importar cada "projeto" em seu próprio repositório git e git pull-los um do outro. Resolver os conflitos e, depois de tudo o que é feito, importar o de volta a história em Subversion.

Mas sua equipe pode ser melhor fora apenas usando o controle distribuído depois de terminar fundindo todos os repos de qualquer maneira ...

Você pode criar um novo projeto de nível superior que usos svn: externos para apontar para todos os outros projectos e os coloca em subdiretórios apropriados.

  • devs só precisa verificar o seu novo projeto de nível superior (SVN seguirá automaticamente o svn: externos e puxar os outros)
  • a história versão completa, serão mantidas, e as novas alterações serão cometidos automaticamente para o sub-projeto relevante
  • irá demorar cerca de 5 minutos para implementar (criar o novo projeto de nível superior e svn propedit svn:externals top_dir executar).
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top