Git-to-Git: Migração Manual de Repositórios

Recentemente tive a necessidade de fazer uma migração de repositórios Git na empresa em que eu trabalho (TFS Git para Gitlab). Apesar de as ferramentas atuais já fornecerem algumas funcionalidades para fazer isso de maneira intuitiva (pela UI, por exemplo), precisei fazer isso manualmente.

A migração Git-to-Git é extremamente simples (ao contrário do cenário TFS (TFVC) para Git). Basta clonar (mirror) o repositório origem, remover a referência antiga(origin), adicionar a nova e fazer o pull.

Para exemplificar, fiz uma migração de Gitlab para AzureDevOps. O procedimento abaixo migra todos os branches, histórico (commits) e tags:

Repositório Origem (Gitlab): https://gitlab.com/Marcel_Goldhardt/test1.git
Repositório Destino (Azure DevOps): https://dev.azure.com/ocaradoazure/migration/_git/migration

git clone --mirror https://gitlab.dell.com/Marcel_Goldhardt/test1.git .
git fetch --tags --all
git remote rm origin
git remote add origin https://dev.azure.com/ocaradoazure/migration/_git/migration
git push origin --all
git push --tags
Origem: Repositório no Gitlab
Destino: Repositório no Azure DevOps

Azure Continuous Delivery em 9 minutos

Neste vídeo explico como configurar o Azure Continuous Delivery para sua aplicação Web. Esta nova feature do AppService nos permite implementar o Continuous Integration/Deployment rapidamente e de maneira muito fácil.

Cenário:

  • Código na máquina do desenvolvedor (standalone)
  • Criação do repositório Git local
  • Criação do repositório remoto (Github) e sincronização
  • Criação do projeto de build no Visual Studio Team Services
  • Configuração de build e deploy diretamente no Azure Portal

Tudo isso em 9 minutos!

 

Nota: não está no vídeo, mas você poderia ainda integrar um mecanismo de notificações utilizando o Zapier e o Twilio. Ao fim de cada deploy (com sucesso, mas principalmente falha) você poderia receber uma chamda de voz). A implementação é muito semelhante a deste post.