Por quase 2 anos usamos o Codeplane, serviço de hospedagem de repositórios Git criado pelo @fnando. E quando digo usamos, usamos pra valer! Todos os projetos desenvolvidos pelo nosso time estavam no Codeplane. Isso dá o total de 102 projetos. Devido a essa quantidade que migramos do GitHub para o Codeplane em 2011 (na época não eram 102, eram bem menos), pois enquanto o GitHub tem seus planos pagos de acordo com o número de repositórios, o Codeplane oferece ilimitados repositórios e seu valor é fixo.

No final de 2011 o Bitbucket começou o suporte ao Git e mais o menos naquela época, conhecemos ele. Mas como já tínhamos pago o Codeplane (o valor é anual), e estávamos satisfeitos com ele, nem pensamos em migrar.

Porém com o crescimento do Bitbucket, do número de repositórios, da nossa equipe, com a gente chegando no limite de 2GB do Codeplane e a parada no tempo do Codeplane (que desde o seu lançamento em 2011 é o mesmo), começamos a pensar em migrar para o Bitbucket, por ser a melhor solução para o nosso uso.

migration_codeplane_to_bitbucket

 

Então no mês passado assinamos o plano de 25 usuários no Bitbucket, e começamos a migração. Migração essa que seria bem simples a princípio, pois o próprio Bitbucket tem uma funcionalidade de importação usando a url do repositório.

Mas são mais de 100 repositórios, portanto seria um trabalho hercúleo importar manualmente. A solução foi então criar um script em Ruby que fizesse esse trabalho. =)

A criação do script foi bem tranquila, pois já estávamos usando o backup do Codeplane para o nosso S3 na Amazon. Portanto, o script basicamente precisava pegar os repositórios do bucket no S3, e jogar no Bitbucket.

Fizemos isso usando a api do S3 e do Bitbucket. Abaixo segue o script:

Para utilizar o script, basta configurar as constantes usadas com as suas informações. E boa migração! =D

Quanto as impressões nossas sobre o Bitbucket, elas são excelentes, ele tornou o nosso dia-a-dia bem mais simples, como por exemplo a criação de times, que lhe permite fazer com que todos os usuários do time, acessem todos os repositórios. Antes no Codeplane, tínhamos que convidar os usuários um a um para cada repositório criado.

Fora esse exemplo básico, o Bitbucket é uma solução bem completa, e nem cabe comparar ele ao Codeplane, pois a competição dele é com o GitHub, enquanto o Codeplane é uma solução mais simples, e não tem o intuito de competir com os grandes, e sim servir como uma alternativa a eles. E foi uma ótima alternativa ao GitHub para nós em 2011. Agora vamos criar outros tantos projetos no Bitbucket!

Agora se você perguntar qual é o melhor: Codeplane, GitHub ou Bitbucket? A resposta é aquela velha: depende. Depende do seu uso, do seu contexto. Como eu disse, o Codeplane atendeu muito bem a gente. O GitHub é inviável pro nosso uso, devido ao grande número de repositórios privados que temos (usamos ele para os projetos open source). Já o Bitbucket se encaixou como uma luva a nossa necessidade atual. =D