CVS - Branch e Tag

Olá pessoal…

Alguém pode me dar exemplos práticos de como usar Branch e Tag no CVS?

Branch acontece quando:

Por exemplo vc desenvolve um produto para uma empresa que tem varias filiais. Digamos que a filial de Sao Paulo usa a versao 1.0 e Rio usa a 2.0, por algum motivo qualquer. E vc precisa ficar dando manutencao nas duas versoes. Nesse caso vc cria um branch e desenvolve em paralelo.
Outro exemplo acontece quando por exemplo vc vai migrar do hibernate2 pro 3. Entao é seguro criar um branch para desenvolver em paralelo, se der errado ou certo vc descontinua uma delas.

Tag é um rotulo. Como diria os puristas, é um ponto no tempo. Quando vc cria uma Tag v1, ele sabe em quais releases estao todos os arquivos do projeto. Exemplo: na v1 a jsp index está na release 1.4, cadastro.jsp na 1.3. Assim vc pode baixar a qualquer momento apenas os arquivos que formam determinada Tag.

Entendi… legal…

Existe algum padrão ou quais os modos mais usuais para nomenclatura dos branchs e tags?

isso depende de vc, da sua empresa… vcs quem criam o padrao. geralmente eh v1 v2, acho que nao pode comecar com numero.

Hummm…

Mais uma dúvida…

Costuma-se guardar os .class no CVS tb? Ou apenas os .java?

Aqui guarda só o .java.

[]'s

Rodrigo C. A.

Bom… eu nunca parei pra ver o que vai pro servidor… mas acredito que apenas os .java, pois podemos ter um projeto que esteja tanto no linux, anto no windows… então n terá proveito os .class jah que vc precisa recompilar um para cada sistema…

Oi, não, não precisa compilar para cada plataforma. Afinal, essa é a graça de Java, não?

Aqui não enviamos para o cvs qualquer coisa que possa ser construida a partir do codigo atual, por exemplo, .class e javadoc.

valeuz…

Alguns sistemas de controle de versão (como é o caso do MS Visual SourceSafe) não gostam dos arquivos .class gerados pelo compilador.

É que o nome desses arquivos contém cifrões se forem “inner classes”. O MS VSS 6.0 não gosta de tais nomes com cifrões - sei lá por quê.

Como alguém sensato resolve isso?
a) Não guarda os arquivos .class
ou
b) Guarda-os zipados
ou
c) Usa um outro sistema de controle de versão.

Como é que eu já vi sendo “resolvido” esse problema?

  • Proibindo o uso de inner classes (e pior ainda, de anonymous inner classes).
    Isso achei realmente absurdo, mas já vi coisas piores.

Olá,

vocês aconselham criar branchs específicos para cada modulo do sistema ?
Tipo existindo Modulo A = BranchA = {Joao, Jose, Maria }, onde essas pessoas estão desenvolvendo em cima desse BranchA. E Alfredo, Joana, e Isabela, está desenvolvendo outro módulo, então estariam em outro Branch.
Isso ficaria complicado pra gerenciar ?

Valeu!!

Olá

Vejam também este outro tópico: Política de SCM

[]s
Luca

Boa tarde caros,

Gostaria de saber se tem como criar Branch/Tag no servidor…
Pergunto isso porque quando eu procedi criando um branch aqui, ele criou na minha própria máquina, mas meu colega do escritório não pode visualizar o branch que eu criei.

Abraços