Home
About
Projects
 CVS
 Contributors
 Online
 Download
 RCS
 Texinfo
 Texi2HTML
History
Tools
Support the Project
 
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 O que não é o CVS?

O CVS pode fazer muitas coisas para você, mas ele não quer ser tudo para todos.

O CVS não é um sistema de desenvolvimento.

Embora a estrutura de seu repositório e os módulos de arquivos interajam com seu sistema de desenvolvimento (por exemplo, `Makefiles'), eles são essencialmente independentes.

O CVS não dita como você constrói qualquer coisa. Somente armazena arquivos para recuperação em uma estrutura hierárquica que você define.

CVS não dita como usar espaço em disco nos diretórios de trabalhando checked out. Se você escreve seus `Makefiles' ou scripts em todos diretórios de modo que eles saibam as posições relativas de todo o resto, resulta que todo o repositório deve passar pelo checked out.

Se você modularizar seu trabalho, e construir um sistema que compartilhe arquivos (via links, mounts, VPATH nos `Makefiles', etc.), você pode organizar o uso do espaço em disco como desejar.

Mas você deve lembrar-se de que todo sistema desse tipo é trabalhoso para construir e manter. O CVS não envolve nessas decisões.

Obviamente você deve fazer todos os ajustes para atender às necessidades de implementação de sistemas (scripts, `Makefiles', etc) para o ambiente oferecido pelo CVS.

Determinar que arquivos precisam ser reconstruídos quando algo muda é, novamente, algo além do escopo do CVS. Uma estratégia corriqueira é usar o make para a construção e algum instrumento automático para estabelecer as dependências usadas pelo comando make.

Veja em @xref{Construções}, para mais informações sobre a execução de construções usando o CVS.

O CVS não é um substituto para a boa administração.

Seus gerentes e líderes de projeto devem comunicar-se o suficientemente freqüênte com você para assegurar que você está atento dos agendamentos, eventos de convergência, ramificação de nomes edatas para libera'~ao de novas versões. Se eles não o fizerem, o CVS não poderá ajudar.

O CVS é um instrumento para fazer os códigos fonte dançarem de acordo com a sua melodia. Mas você é o flautista e o compositor. Nenhum instrumento se toca a si mesmo ou escreve sua própria partitura.

O CVS não é um substituto para intercomunicação
entre os desenvolvedores.

Quando enfrentam conflitos que envolvem um único arquivo, a maioria dos programadores consegue solucionalos sem muito esforço. Mas uma definição mais geral de "conflito´´ inclui problemas difíceis demais para resolver sem a comunicação entre os desenvolvedores.

O CVS não pode saber quando mudanças simultâneas em um mesmo arquivo, ou em um grupo de arquivos, resultarão em em conflito logico com algum outro. Seu conceito de um conflito é puramente textual, ocorrendo quando duas mudanças no mesmo arquivo base estiverem perto de bastante para ativar a diretiva merge do comando diff3.

O CVS não se propões a ajudar a resolver conflitos na lógica de programação.

Por exemplo: Digamos você muda os argumentos da funcão X no arquivo `A'. Ao mesmo tempo, alguém edita o arquivo `B', adicionando novas chamadas para a função X mas usando argumentos no formato antigo. Neste contexto você estará completamente fora do escopo do CVS.

Adquira o hábito de ler os specs e falar com seus parceiros.

O CVS não faz controle de modificações.

Controle de modificações refere-se à vários aspectos. Em primeiro lugar pode significar trastreamento de erros, isto é, ser capaz de manter uma base de   dados de erros (bugs) já relatados e a condição atual destes (está corrigido? em que verssão? o relator do erro concorda que este foi corrigido?). Para interconectar o CVS com um sistema externo de rastreamento de erros, veja os arquivos `rcsinfo' e `verifymsg' ( C. Reference manual for Administrative files).

Outro aspecto sobre o controle de mudanças é o fato de que mudadas em vários arquivos são tratadas como uma única mudança logica. Se você atualizar vários arquivos em uma única operação de commit, então o CVS esquece que esses arquivos foram verificados juntos, e o fato que eles têm que a mesma mensagem de registro será a único vínculo que os manterá juntos. É útil manter um arquivo de mudanças (`ChangeLog') ao estilo GNU.

Outro aspecto sobre o controle de mudanças, em alguns sistemas, é a habilidade de manter registro do estado de cada mudança. Algumas mudanças foram feitas por um programador, outras foram revisadas por um segundo programador, e assim por diante. Geralmente, o modo de fazer isto com o CVS é gerar um diff (usando o comando cvs diff ou diff ou) e envia-lo por e-mail isto para alguém que aplica a modifica'~ao usando o comando patch. Isto é muito flexível, mas depende de mecanismos fora do CVS para assegurar que nada escape pelas "frestas"...

O CVS não é um programa para testagem automática

Deveria ser obrigatório o uso de um conjunto de fontes para teste usando o arquivo `commitinfo'. Eu não ouvi falar muito de projetos que tentam fazer uso disto ou se existem problemas ocultos a este respeito.

O CVS não tem um modelo para o processo de criação

Alguns sistemas oferecem modos de assegurar que as modificações ou versões passem por várias etapas, com várias instâncias de aprovações. De modo geral, é possível fazer isto com o CVS oque exige um pouco mais de esforço. Em alguns casos pode-se usar os arquivos `commitinfo', `loginfo', `rcsinfo', ou `verifymsg' de modo que antes do checkin determinadas etapas tenham sido cumpridas. Também deve-se considerar o uso de processos como os de ramificação e anotações para executar o trabalho de desenvolvimento em um ramo separado e depois rejunta-lo com a versão estável quando se estiver certo de que está pronto para tal.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Sun Aug 26 19:43:32 UTC 2001 © 1999, 2000, 2001 by Manual Translation Project webmaster@manual-translation-project.org