Pergunta

Um cenário comum quando se utiliza o controle de origem é ter um ramo de desenvolvimento junto com ramos de liberação de versões. Nós usamos CVS, com CABEÇA como o ramo de desenvolvimento, e um ramo chamado por exemplo libertar-6-2 para a versão atual de um produto.

O desenvolvimento de novos recursos vão para o ramo de desenvolvimento apenas, mas correções de bugs, por vezes, tem que ser verificado tanto no ramo de desenvolvimento eo ramo versão atual. Isto pode ficar muito tedioso às vezes, então eu estou procurando maneiras práticas para conseguir isso.

Quando um arquivo a ser comprometido é em sincronia nos dois ramos, estou em particular à procura de um "comprometer-se a estes ramos" solução rápida.

(Nós usamos CVS como nosso sistema de controle de origem, portanto, quaisquer respostas específicas-CVS são agradáveis. No entanto, também é interessante ver se outros sistemas de controle de origem pode oferecer uma maneira melhor. No lado do cliente, usamos Eclipse, pelo que as soluções Eclipse são boas. Mas se você tem uma solução não-Eclipse, que é muito fina.)

Foi útil?

Solução

Aplique seu fix para o mais antigo ramo é necessária uma autorização. Em seguida, mesclar a mudança para o próximo ramo release e assim por diante até que você mesclar a partir do último ramo release para a cabeça.

Say a versão mais antiga de seu produto é de 1,0 e você também tem 1.1 e 1.5 versões. Novos recursos para a próxima versão estão sendo adicionados à cabeça. Se um bug é encontrado em 1,0, de aplicar a correção para o ramo 1.0. Mesclar de 1,0 a 1,1 ramo. Mesclar de 1,1 a 1,5 ramo, e, finalmente, fundir do ramo 1,5 a cabeça.

A fusão de galho em galho é melhor do que aplicar a correção manualmente para cada ramo.

Com CVS você tem que manter mannually o controle do que as versões são mescladas, de modo que você não incluir as mesmas revisões quando você faz a sua próxima mesclagem.

Se você mudar de usar Subversion, a fusão de galho em galho é mais fácil. ferramenta de subversão do Eclipse vai acompanhar o que as revisões você já se fundiram, simplificando a tarefa de fazer fusões repetidas entre dois ramos.

Mudar para Subversion a partir do CVS é ??fácil (ish). Você não será o primeiro a ter feito tal movimento.

Outras dicas

Como awalshe disse, é melhor fusão entre ramos. Para cereja-escolher uma mala, o método descrito em pragmática Controlo Versão usando CVS é muito bom:

No ramo - tag (PRE_FOO) antes da mudança, fazer as mudanças e comprometer, tag após a mudança (POST_FOO). Em seguida, no tronco, mesclar usando as tags:

cvs up -j PRE_FOO -j POST_FOO

A fusão entre os ramos é muito mais fácil e mais seguro no SVN, e é trivial para converter todo o seu histórico CVS para SVN - veja cvs2svn . Você deve usar SVN 1.5, ou - com versões anteriores do SVN - svnmerge .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top