[Cascavel-pm] [OFF-TOPIC] Gerenciamento de versoes

Luis Campos de Carvalho monsieur_champs em yahoo.com.br
Segunda Dezembro 19 13:03:41 PST 2005


--- Donato Azevedo <donatoaz em gmail.com> escreveu:
> Pessoal, alguem aqui sabe algum recurso (site, livro, pintura
> rupestre, etc..) sobre gerenciamento de versões??

  Site!
  http://www.cvshome.org/
  http://subversion.tigris.org/

  Se alguém souber de pintura rupestre, eu quero ver!

> explicando o contexto:
> a empresa aonde trabalho mantem uma aplicação 
> web sob tres versoes diferentes (3 produtos) 
> que dividem grande parte parte do código mas
> sao mantidos em arvores diferentes no cvs. Deste modo:
> 1. Nao existe uma versao basica a partir da qual 
>    se possa criar uma nova do zero, ou vender como 
>    uma solução mínima para alguem
> 2. Um bug encontrado em uma versao deve ser 
>    corrigido e testado nas outras 2... Isto porque 
>    só temos 2! se fossem 30...
> 
> pensei em gerar uma versao basica e patches 
> que seriam aplicados para gerar as versoes 
> especificas. Seria um trabalho extremamente complexo
> gerar uma versão basica mas eh estritamente 
> necessario do ponto de vista de negocios da empresa...
> entao vou ter de fazer isto, o que resta saber 
> é como gerenciar as versoes especificas....

  Na verdade, você deve ter uma versão "core", sim, mas tratar as personalizações como "branches"
desta versão "core". Assim, sempre que precisar de uma funcionalidade em mais de um cliente,
incorpora de outro "branch" fazendo "merge" de dois "branches" diferentes... ih, me enrolei
todo... mas controle de versão é sempre assim, meio enrolado. ;-)

  Por sinal, eu tenho uma empresa especializada em software livre e posso te oferecer consultoria
e treinamento nisso, se interessar. Me contate off-list para conversamos.

> As versoes basicas e Especificas (ver 1) seriam
> mergidas de modo que nao ha como garantir que uma 
> mudança no basico funcionaria em todas as
> versoes especificas

  É, a idéia básica você tem... falta implementar.
  Lembre-se que o maior problema é manter todos os desenvolvedores mentalmente sãos enquanto você
apresenta os nuances da ferramenta de controle que resolver usar. Depois, é tudo alegria... ;-)

> me sugeriram usar fachadas (façades) para separar 
> a versao basica da especifica e criar modulos de 
> interface entre a versao basica e a espefica mas 
> nem sei o que são fachadas... nem se faz sentido
> usá-las....

  Esquece isso. Seguindo este esquema, você vai "fragmentar" o que hoje você vê como "core" da sua
aplicação em um "núcleo duro" indivisível, obrigatório para todos os clientes, e uma enorme
quantidade de "plug-ins", menores, possivelmente incompatíveis entre si em algum grau (talvez
tolerável?).

  Esta pode ser uma boa estratégia se você tem REALMENTE muitos clientes exigindo funcionalidades
completamente disconexas umas das outras... mas não acho que este seja seu caso. Você parece ter
algumas pequenas adaptações de software para outros clientes. Pode certamente trabalhar com o
esquema (muito mais simples de implementar e manter) de ter duas ou mais versões "vivas" do
sistema em produção ao mesmo tempo.

  Espero que isso ajude.
  Se precisar de mais, me contate, conversamos à vontade (sem custo adicional ;-)

  Putamplexos!

--
Luis Campos de Carvalho
Member of "São Paulo Perl Mongers",
Unix SysAdmin & OCP/DBA Oracle


	



	
		
_______________________________________________________ 
Yahoo! doce lar. Faça do Yahoo! sua homepage. 
http://br.yahoo.com/homepageset.html 



Mais detalhes sobre a lista de discussão Cascavel-pm