Eu acredito que o Bazaar é o mais sensato DVCS, e é especialmente bom para usuários familiarizados com o Subversion. Pode ser usado muito eficientemente com um sistema Subversion.
Parece que o comando bzr svn-import
importa todos os ramos do Subversion, o que provavelmente não é o que você deseja. Não é possível importar de um checkout do Subversion porque o Subversion não mantém todo o histórico localmente.
Como você deseja usar várias ramificações, primeiro crie um repositório compartilhado para economizar espaço em disco e tempo durante a ramificação.
bzr init-repo ~/project
Em seguida, use o comando bzr checkout
para criar um checkout no seu tronco do Subversion. Especifique o URL do Subversion para o tronco do projeto.
cd ~/project
bzr checkout https://svn.example.com/project/trunk trunk
Você então terá uma árvore Bazaar em ~ / project / trunk que está vinculada ao tronco do Subversion. Um ramo limite significa que os commits são automaticamente enviados para o branch remoto, isto é, qualquer coisa que você comete aqui será confirmada no trunk do Subversion.
Quando você quiser fazer algumas alterações, crie uma nova ramificação no tronco local.
cd ~/project
bzr branch trunk fix-some-bugs
Trabalhe em ~ / project / fix-some-bugs e confirme ao longo do processo. Tudo isso acontecerá localmente e não afetará o tronco do Subversion. Você pode criar quantos galhos desejar.
Quando você quiser submeter essas mudanças ao tronco do Subversion, mescle o ramo em seu tronco local. Primeiro, certifique-se de que seu tronco local esteja atualizado usando bzr pull
.
cd ~/project/trunk
bzr pull
bzr merge ../fix-some-bugs
bzr commit
Isto irá comprometer todas as mudanças que você fez no branch como uma única revisão no Subversion (mesmo se você fez vários commits no branch).