Archive for the ‘scm’ Category

Prepare-se para comer poeira do git

maio 11, 2008

Percebi recentemente uma rápida adoção de projetos importantes no mercado hoje para o git. Na verdade parece todo mundo estar se organizando para isto.

O git foi um projeto isolado inicialmente para auxiliar o desenvolvimento do kernel do linux e criado por Linus Torvalds, sendo assim utilizado com uma engine de baixo nível.
Resumindo um pouco mais a história, com o tempo foi necessário facilitar e automatizar alguns passos, bem como abstratir certos procedimentos cansativos. Ficou claro e perceptível uma adaptação/otimização na engine de baixo nível e inclusão de alguns recursos novos adotados a partir de subprojetos como Cogito e StGIT de alto-nível.

Com o aprimoramento do kernel do linux e expansão do código-fonte, este foi mais um passo importante para agilização de release, checksum automatizado para md5, entre diversos benefícios. Aprendi isto ontem com Jorge, debian-pe. Estive discutindo sobre o assunto enquanto planejavamos com o grupo sobre o próximo dia D 2008 do debian. A partir daí percebi o quão a comunidade de desenvolvedores do gnome vem se mobilizando neste mesmo trajeto.

A partir daí é constatado uma mudança muito brusca a fim de buscar algo que não tinhamos com o cvs ou mesmo com o quase dono da pedaço svn. Muito se fala ainda em comparativos entre cvs e subversion[1][2][3][4][5][6]. Mas é preciso perceber as vantagens reais desta mudança. No mundo de hoje temos que acompanhar tendências e evoluções tecnológicas buscando não só agilidade e eficiência, mas também garantir as expectativas de seu projeto.

Atualmente, nem tenho idéia, como estão se comportando os mantenedores do cvs/svn/ss/starTeam, entre outros quanto a estas mudanças. Benchmarks[1][2] já estão sendo demonstrados, comparativos mostram-se publicamente justificados[1][2][3][4][5] o ganho que o git vem oferecendo. Basta apenas estarmos acompanhando estas evoluções e/ou colaborando nas principais listas existentes [1], bem como de boas ferramentas em processo de desenvolvimento em massa. Já tá rolando screenshots do plugin para o git(bem interessante o history views a partir do resource decorator na perspectiva logo abaixo na view da IDE do eclipse. isso vai virar febre logo, logo).

A um certo tempo atrás, apesar de não ter publicado em blog, mas aproveitando o espaço, estive pesquisando diversos serviços na web gratuitos a fim de mantermos projetos pela web free com alguns serviços integrados disponíveis de scm, tais como o google code, opensvn, sourceforge, entre outros. Descobri um bacana a partir da recomendação de Luiz Aguiar, colega conhecido do guj, para migração de seu projeto loocrum do devjavu para o assembla. Este assembla é show de bola! Os caras já estão dando suporte a git.

Hoje temos bem mais opções destes serviços acima citados suportados pelo git, bem como gitorious e repo.or.cz.
Bem, chegou a hora de falar o outro lado da história. Cuidado com a lei de murphy, afinal, nada está remoto de acontecer. Um belo dia o gremlins pode vir te pegar (em homenagem a um colega que trabalha comigo, arquiteto:hmigge). Levante o custo/benefício, quais são suas opções atuais e o que pode ser aplicado para os próximos meses. Uma boa saída para isto é efetuar bons testes, enquanto a galera continua desenvolvendo tranquilarmente em svn/cvs. Você pode também evitar dependências criando máquinas lógicas pelo vmware mesmo a fim de migrar para outros servidores com hardwares mais/menos sofisticados. Você pode buscar iniciativas interessantes como a galera do ThoughtWorks, bem como diversas opções disponíveis por aí, ou então a partir do debian segundo algumas dicas de Marcelo.

Fiquei também me perguntando como está sendo a reação da galera da comunidade assídua do cvs ou svn. Isto na verdade é um fator interessante e importante, assim como vem acontecendo com o java x .net(lado positivo de ambos, claro!), disponibilizando para a comunidade suas vantagens e opções.

Contudo está dado o recado que transparece novas opções para avaliarmos e consentirmos em nossos próximos projetos.

Referências:

  1. wikipedia
  2. introdução atualizada
  3. curso intensivo
  4. principais comandos básicos
  5. gerenciando projeto básico com git
  6. tutorial básico para desenvolvedores
  7. apresentação de linus torvalds sobre o git
  8. apresentação de randal schwartz (famoso engenheiro expert em perl)
  9. experiência de um engenheiro do ruby em ter executado o processo completo até deployer
  10. Prévia de um livro a ser lançado sobre git :: resumo na íntegra
  11. Artigo muito bom e didático de Junio C Hamano
Anúncios

Padrões de política de criação de branches

abril 29, 2008

Recentemente venho me planejando a me aprofundar um poucos mais quanto às práticas de SCM, percebi isto ao me preocupar com automatizar um simples processo de build e deploy em um servidor container web, bem como da necessidade em ter de desenvolver em paralelo e quais políticas poderei adotar tanto na criação como integração de branch.

Bem, isto não é novidade para muita gente, mas para uma simples decisão de qual a melhor estratégia diante de uma granuralidade de sub-equipes desenvolvendo módulos de um projeto em paralelo, tanto para manutenções bem como novas funcionalidades, acrescentarão estratégias que sua sub-equipe específica deverá utilizar para contemplar um conjunto de funcionalidades que posteriormente serão reintegradas e disponíveis aos branches da qual se originaram.

Identifiquei um guia excepcional que me auxilia no uso de determinadas práticas para casos específicos, se forem necessários. Isto depende bastante do projeto e conhecimento da equipe, mas tenha-se em mente que a cada branch criado, será necessário uma posterior integração. Particularmente sou a favor dos padrões [Branch per task] e [Active Development Line].

Estarei posteriormente publicando mais informações quanto a práticas interessantes e padrões comumente utilizados como práticas interessantes de gerência de configuração.