Capítulo 5. Utilização Avançada

Actualizar para uma Marca, Ramificação ou Data

As ramificações de um módulo são versões paralelas deste. Um bom exemplo da vida real do uso desta funcionalidade é o lançamento de um projecto de 'software'. Depois de uma versão importante ter saído, existem erros no código que deverão ser corrigidos, mas as pessoas poderão também querer adicionar novas funcionalidades à aplicação. É bastante complicado fazer ambas as coisas ao mesmo tempo, porque as novas funcionalidades introduzem normalmente erros novos, tornando difícil lidar com os antigos. Para resolver este dilema, o CVS permite-lhe criar uma versão paralela, a qual será chamada a ramificação de lançamento estável, onde só poderá adicionar correcções de erros, deixando o ramo principal (HEAD) aberto para a adição de novas funcionalidades.

As marcas ou 'tags' são usadas para marcar uma versão de um projecto. O CVS assinala uma dada versão de cada ficheiro com essa marca para que, quando desejar obter ou actualizar para uma dada marca, você obtenha sempre as mesmas versões dos ficheiros. Como tal, em oposição às ramificações ('branches'), as marcas não são dinâmicas: você não poderá desenvolver sobre uma marca. As marcas são úteis para marcar as versões de lançamento, as grandes alterações no código, etc.

Quando você estiver a desenvolver ou a seguir o desenvolvimento de um projecto de 'software', não precisa necessariamente de trabalhar com o ramo principal durante o tempo todo. Depois de um lançamento, você poderá querer continuar com a ramificação publicada durante algum tempo, para apreciar a sua estabilidade relativa, corrigir erros, traduzir o código, etc. Para fazer tudo isso, você precisa de se actualizar para a ramificação lançada. Todos os seus ficheiros ficarão actualizados de acordo com a última versão dos ficheiros nessa ramificação. Depois da actualização, todas as suas novas alterações serão também enviadas para essa nova ramificação.

Também, se pretender seguir um erro que foi atribuído a uma versão marcada anteriormente, o CVS oferece-lhe a possibilidade de obter o 'software' tal e qual foi lançado, actualizando para essa marca. Para além disso, se você quiser obter uma versão anterior do seu projecto, você poderá actualizar a sua cópia local para uma dada data. Isto poderá ser útil se foi introduzido um erro no projecto entre duas versões e se você tem uma opinião sobre quando foi. Quando você actualizar para uma determinada data ou marca, as versões dos seus ficheiros serão as mesmas que as versões nessa data específica ou as versões com essa marca.

Atenção

Antes de se actualizar para uma determinada ramificação ou marca, certifique-se que enviou todas as suas alterações para a ramificação em que está a trabalhar. Se não estiver ainda pronto para enviar as suas alterações, mas se não as quiser perder, não se actualize para a nova ramificação, dado que poderá perder as suas alterações. Em alternativa, você poderá fazer uma nova extracção ou 'checkout', para trabalhar em paralelo com ambas as versões.

Figura 5.1. Uma imagem da janela do Cervisia de actualização para uma 'tag'

Uma imagem da janela do Cervisia de actualização para uma 'tag'

Actualizar para uma ramificação ('branch')

Seleccione esta opção para actualizar para uma dada ramificação. Indique o nome da mesma no campo de texto (ou carregue no botão Obter Lista para obter uma lista com todas as ramificações do servidor do CVS, seleccionando a que deseja na lista).

Actualizar para uma marca ('tag')

Seleccione esta opção para actualizar para uma dada marca. Indique o nome da mesma no campo de texto (ou carregue no botão Obter Lista para obter uma lista com todas as marcas do servidor do CVS, seleccionando a que deseja na lista).

Actualizar para uma data

Seleccione esta opção para actualizar para uma determinada data. No campo em baixo, você poderá indicar uma grande variedade de formatos. Um formato possível é o aaaa-mm-dd em que o aaaa é o ano, o mm é o mês (numérico) e o dd é o dia. Algumas alternativas poderão ser algumas frases em inglês como yesterday (ontem) ou 2 weeks ago (há 2 semanas atrás).

Nota

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

O comando enviado para actualizar para uma ramificação ou marca é:

cvs update -r marca

O comando executado para actualizar para uma data é:

cvs update -D data

O comando usado para actualizar para o ramo principal (HEAD) é:

cvs update -A