Capítulo 5. Uso Avançado

Atualizando para Tag, Ramificação ou Data

Ramificações de um módulo são versões paralelas deste módulo. Um bom exemplo prático do uso deste recurso é o lançamento de um projeto de software. Após uma versão principal, existem erros no código que devem ser concertados, mas as pessoas desejam adicionar novos recursos ao aplicativo também. É muito difícil fazer as duas coisas ao mesmo tempo porque novos recursos normalmente introduzem novos erros, tornando difícil rastrear os antigos. Para resolver este dilema, o CVS permite que você crie uma versão paralela, que nós chamaremos de ramificação da versão estável, onde você pode somente adicionar correções de erro, deixando a ramificação principal (HEAD) aberta para adição de novos recursos.

Tags são usadas para marcar a versão de um projeto. O CVS estampa uma versão de cada arquivo com a tag, de modo que quando você importar ou atualizar para uma tag específica, você obterá sempre as mesmas versões de arquivo. Por outro lado, ao contrário das ramificações, tags não são dinâmicas: você não pode desenvolver uma tag. Tags são úteis para marcar lançamentos, grandes mudanças no código, etc.

Quando você está desenvolvendo ou seguindo o desenvolvimento de um projeto de software, você não trabalha necessariamente com a ramificação principal sempre. Após um lançamento, você pode desejar permanecer com a ramificação do lançamento por um tempo, para verificar sua relativa estabilidade, corrigir erros, traduzir as fontes, etc. Para fazer tudo isto, você deve atualizar para a ramificação de lançamento. Todos os seus arquivos serão atualizados para o última versão dos arquivos na ramificação. Após a atualização, todos os seus novos envios serão remetidos para a nova ramificação.

Além disso, se você deseja rastrear um erro que foi reportado em uma versão com tag anterior, o CVS oferece a possibilidade de recuperar o software como ele foi lançado, atualizado para a tag. Ao lado disso, se você deseja buscar uma versão passada do seu projeto, você pode atualizar sua cópia de trabalho para uma data específica. Isto pode ser útil se um erro foi introduzido no projeto entre dois lançamentos, e você tem uma ideia de quando ele ocorreu. Quando você atualiza para uma data ou tag, as versões de seus arquivos serão as mesmas das versões naquela data específica ou das versões estampadas pela tag.

Atenção

Antes de atualizar para uma ramificação diferente ou tag, certifique-se de que você enviou todas as suas mudanças para a ramificação que você está trabalhando. Se você não estiver pronto para enviar suas mudanças, mas não quer descartá-las, não atualize para a nova ramificação, ou perderá todo o seu trabalho. Como uma alternativa, você pode fazer uma nova verificação, para trabalhar em paralelo com ambas as versões.

Figura 5.1. Uma captura de tela do diálogo de atualização de tag do Cervisia

Uma captura de tela do diálogo de atualização de tag do Cervisia

Atualizar para ramificação

Selecione esta opção para atualizar para uma ramificação. Insira o nome da ramificação na caixa de texto combinada (ou pressione o botão Obter Lista para recuperar a lista de ramificações a partir do servidor CVS, e selecione a que você deseja na lista combinada).

Atualizar para tag

Selecione esta opção para atualizar para uma tag. Insira o nome da tag na caixa de texto combinada (ou pressione o botão Obter Lista para recuperar a lista de ramificações a partir do servidor CVS, e selecione a que você deseja na lista combinada).

Atualizar para data

Selecione esta opção para atualizar para uma data. No campo abaixo, você pode inserir uma grande variedade de formatos de data. Um formato possível é aaaa-mm-dd onde aaaa é o ano, mm é o mês (numérico) e dd é o dia. Alternativas são algumas frases em inglês como yesterday ou 2 weeks ago.

Nota

Ambas as opções acima indicadas tornam uma marca ou data 'fixas', isto é você não poderá efetuar mais modificações nesses arquivos (a menos que a marca seja de uma ramificação). Para obter de volta o ramo principal, use o item do menu AvançadoAtualizar para o HEAD.

O comando enviado para atualizar para uma ramificação ou tag é:

cvs update -r tag

O comando enviado para atualizar para uma data é:

cvs update -D data

O comando enviado para atualizar para a ramificação principal (HEAD) é:

cvs update -A