Isto lhe dará uma história do dado módulo no porta-malas, ele vai parar na primeira cometer o código que copiou de outro lugar. A saída detalhada permitirá que você veja onde esta cópia veio.
Agora temos um ponto de partida para escrever uma regra, queremos que todos os commits a deste path em nosso repositório no branch master:
Se o log pára em uma confirmação de que copiou o módulo de algum lugar, precisamos acompanhar este também terá a história importada a partir do local "velho" o módulo residia. O comando svn mesmo pode ser usado com o argumento de path um pouco diferente:
A @revision é importante, pois o path original geralmente não existe mais. Com isso podemos escrever a próxima regra para o arquivo de regras e repetir até que tenhamos finalmente chegado ao ponto em que o código foi inicialmente importado para o svn (ou CVS, provavelmente, nos velhos tempos)
Agora nós podemos cuidar das branches, isto é um pouco mais complicado já que pode haver várias branches espalhadas pelo diretório /branches no svn. Você pode usar os mesmos comandos de antes de descobrir o histórico de um branch, se você sabe o path. Desta vez, porém você pode parar de seguir o código da copy-operations, uma vez que você encontrou um código que já foram encontrados em uma regra. Dessa forma, seu ramo estarão ligados ao ramo que o originou (que geralmente é conhecido como trunk aka master) no git.
Uma ajuda útil em encontrar branches é svn ls em combinação com o [email protected] sintaxe, dessa forma você pode visualizar o conteúdo de um diretório específico svn como era em uma versão antiga. Com isso, você pode até encontrar ramos que não são visíveis (foram excluídos) na versão atual.
A regra para colocar compromete-se em um ramo no repositório git final só é um pouco diferente (o exemplo é de um módulo central):
E por último, estão as tags, este funciona da mesma forma como as branches e trunk, exceto usando o branch refs/tags/v<tag-version> para o parâmetro do branch.