Pergunta

Eu criei um espelho mercurial de um repositório SVN (usando este tutorial: http://oreilly.com/opensource/excerpts/opensource-mercurial/migrating-to-mercurial.html). A sincronização funciona muito bem, exceto que notei que não está pegando um repositório externo que é referenciado no Repo SVN principal ...

Idealmente, gostaria de poder puxar tudo como um único repositório para o Mercurial (junto com as mudanças, se possível).

O que eu não tenho certeza é: a falta de limitação externa do SVNSYNC ou uma limitação de HG é convertida?

Existe alguma maneira de forçar o externo a ser sincronizado também, no mesmo repo mercurial?


Estou pensando que uma boa solução seria configurar o processo de sincronização novamente, para o externo. Crie um garfo do espelho Hg atual e sincronize o externo no garfo Hg Mirror.

O problema é que o porta -malas externo deve entrar em uma subpasta do primeiro espelho, então como posso replicá -lo com convertido? Duvido que eu possa dizer ao converter para importar em uma subpasta ...

Foi útil?

Solução

A limitação externa ausente de svnSync ou uma limitação de Hg é convertida?

svnsync é usado para criar um espelho de um repositório SVN. Isso inclui qualquer svn:externals propriedades. Portanto, deve ser uma limitação de hg convert.

Observe que você realmente não precisa criar um espelho com svnsync. O artigo recomenda isso apenas porque ter uma cópia local pode acelerar o processo de conversão.

Existe alguma maneira de forçar o externo a ser sincronizado também, no mesmo repo mercurial?

É comum que um repositório SVN contenha vários projetos vagamente relacionados, cada um com suas próprias ramificações e tags. Mas o Mercurial não funciona dessa maneira: quando você ramifica, você ramifica tudo o que está no repositório. Você deve criar um repositório mercurial separado para cada projeto no SVN que possui seu próprio tronco/ramificações/tags. Essa abordagem diferente é mais provável por que hg convert ignora os externos, mesmo que estejam no mesmo repositório SVN.

Há um equivalente a svn:externals em mercurial; É chamado de "subrepositórios". Em vez de ter um ou mais svn:externals propriedades, você tem um único .hgsub Arquive com conteúdo semelhante na raiz do seu projeto. Você deve primeiro converter cada projeto SVN em um repositório mercurial separado e depois conectá -los aos sub -repositórios. Veja o Página do Wiki Mercurial para subrepositórios para mais detalhes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top