/ / Como migrar um repositório SVN no Google Code para um repositório git no GitHub - git, svn, github

Como migrar um repositório do SVN no Google Code para um repositório do git no GitHub - git, svn, github

Estou tendo dificuldades para mudar de um repositório SVN hospedado no code.google para um repositório git no github. Especificamente:

  1. Como posso alterar o código no code.google de SVN para GIT, mantendo o histórico de revisões?
  2. Como posso alterar o wiki no code.google de SVN para GIT, mantendo o histórico de revisões?
  3. Como posso mover meu repositório GIT do code.google para o GitHub?
  4. Como mantenho os dois repositórios sincronizados, enquanto ainda uso o GitHub como repositório principal?

Respostas:

9 para resposta № 1

Variáveis:

  • $ project é o nome do seu projeto
  • $ username é seu nome de usuário no github

Isso pressupõe que o seu $ project name é o mesmo no github e no code.google e você já inicializou seu repositório no github.

Além disso, se o seu repositório code.google já for GIT, você poderá pular para a etapa 4.

  1. Converta projeto de SVN para GIT. Isso é tão fácil quanto acessar a guia Administração-> Origem e alterá-lo de SVN para GIT. A propósito, o svn ainda está disponível após você fazer isso; portanto, não se preocupe com a perda completa do código.

  2. Converter fonte do code.google SVN para code.google GIT (mantendo o histórico)

    git svn clone --stdlayout https://$project.googlecode.com/svn $project
    cd $project
    git remote add googlecode https://code.google.com/p/$project
    git push --all googlecode
    cd ..
    
  3. Converter wiki do google SVN para o google GIT (mantendo o histórico)

    git svn clone https://$project.googlecode.com/svn/wiki $project.wiki
    cd $project.wiki/
    git remote add googlecode https://code.google.com/p/$project.wiki
    git push --all googlecode
    cd ..
    
  4. Obter novo repositório git no github

    mkdir github
    cd github/
    git clone https://code.google.com/p/$project.git
    cd $project/
    
  5. Obter código-fonte do code.google GIT para o clone do github local

    git remote set-url origin https://github.com/$username/$project.git
    git pull
    
  6. Enviar a fonte do clone local para o github

    git push origin master
    
  7. Diga ao seu clone local para enviar confirmações ao github AND code.google

    git remote set-url --add origin https://$project.googlecode.com/git
    
  8. O envio do teste é confirmado no github e no code.google

    touch test.txt
    git add test.txt
    git commit -m "Testing repo replication" test.txt
    git push
    

Agora, sempre que você fizer alterações no seu clone local, ele enviará essas alterações para os dois repositórios.

Nota: Se você clonar novamente em outro local (como um computador diferente), será necessário repetir a etapa 6 novamente.


0 para resposta № 2

Agora existe um recurso de exportação no Google Code - acesse a página de código do Google do seu projeto, ou seja, code.google.com/p/yourproject então você verá um botão "Exportar para o GitHub" que fará isso em algumas etapas (nota: você precisará autorizá-lo com sua conta do GitHub).

Observe que você pode fazer isso para qualquer projeto, não apenas o seu.