Eu conheci o Subversion aproximadamente em 2007, e desde então tenho o utilizado regularmente.
Em meados de 2009 ouvi falar do GIT, e do controle de versões distribuído em geral. Dei uma pesquisada, mas como bom pragmático, e cético, não levei muito a sério.
Em Março deste ano, li um artigo do guru Joel Spolsky, onde ele conta que também chegou a questionar sobre a real utilidade de um DVCS, mas depois descobriu suas infinitas vantagens.
Além dele, outro guru, o Rob Conery, também já estava utilizando o GIT. Até o Google passava a usar DVCS com o Mercurial. Estava claro que eu havia sido precipitado no meu julgamento.
Resolvi retomar minhas pesquisas, olhando com outros olhos o tal do DVCS. Assim como o Rob (e ao contrário do Joel), optei pelo GIT (mesmo desenvolvendo exclusivamente em plataforma Windows - .NET).
Li um livro sobre arquitetura interna da ferramenta, instalei, fiz semanas de testes, e concluí:
Vale a pena.
O DCVS rearquitetou os conceitos de trunk/branch/merge de forma fantástica, e muito “clean”. Pra quem está acostumado com o Subversion, a nova interface pode parecer assustadora no início (muitos comandos novos), mas os comandos básicos (branch, tag, merge) ficaram muito mais fáceis (e mais estruturados) de usar.
Os algoritmos de merge também ficaram muito mais inteligentes (como por exemplo detecção automática de renames, mesmo quando o conteúdo contém modificações)
Vale mesmo a pena. O DCVS realmente é bem superior a ferramentas client-server como o Subversionou o Team Foundation Server.
Mas fica um alerta: Se sua empresa ainda usa o Source Safe, será um caminho tortuoso passar diretamente para DVCS. Os tutoriais do GIT pelo menos partem do pressuposto que você já conhece razoavelmente os conceitos de trunks/branchs/tags/merge.
Vale a pena ler o artigo do Joel: Distributed Version Control is here to stay, baby .