F.2. Organização da árvore do CVS

Autor: Escrito por Marc G. Fournier ( ) em 1998-11-05

O comando cvs checkout possui um sinalizador, -r, que permite trazer (checkout) uma determinada revisão de um módulo. Este sinalizador torna fácil, por exemplo, trazer os fontes que compõem a versão 6_4 do módulo `tc' a qualquer momento:

$ cvs checkout -r REL6_4 tc

Este comando é útil, por exemplo, caso alguém diga que existe um erro nesta versão, mas o erro não pode ser encontrado na cópia de trabalho corrente.

Dica: Também é possível trazer um módulo, como este se encontrava em uma determinada data, utilizando a opção -D.

Quando se marca mais de um arquivo com a mesma marca, pode-se pensar na marca (tag) como sendo "uma curva traçada através de uma matriz de nome de arquivo versus número de revisão". [1] Digamos que existam 5 arquivos com as seguintes revisões:

             arq1    arq2    arq3    arq4    arq5

             1.1     1.1     1.1     1.1  /--1.1*      <-*-  MARCA
             1.2*-   1.2     1.2    -1.2*-
             1.3  \- 1.3*-   1.3   / 1.3
             1.4          \  1.4  /  1.4
                           \-1.5*-   1.5
                             1.6

então a marca MARCA faz referência a arq1-1.2, arq2-1.3, etc. (continuação tirada do manual do CVS->) Pode-se imaginar a marca como uma alça presa à curva traçada através das revisões marcadas. Quando se puxa a alça, são trazidas todas as revisões marcadas. Outra forma de enxergar é como sendo uma "visão" através de um conjunto de revisões que é um "plano" ao longo das revisões marcadas, como mostrado abaixo:

             arq1    arq2    arq3    arq4    arq5
                             1.1
                             1.2
                     1.1     1.3                       _
             1.1     1.2     1.4     1.1              /
             1.2*----1.3*----1.5*----1.2*----1.1     (--- <--- Olhe por aqui
             1.3             1.6     1.3              \_
             1.4                     1.4
                                     1.5

(<-fim da continuação do manual - N. do T.)

Nota: É o mesmo que criar uma ramificação (branch) de versão, sem utilizar a opção -b adicionada ao comando.

Portanto, para criar a versão 6.4 foi feito

$ cd pgsql
$ cvs tag -b REL6_4

para criar a marca e a ramificação na árvore RELEASE.

Para os que possuem acesso ao CVS, é simples criar diretórios para versões diferentes. Primeiro devem ser criados dois subdiretórios, RELEASE e CURRENT, para não confundir as duas coisas. Depois se executa:

cd RELEASE
cvs checkout -P -r REL6_4 pgsql
cd ../CURRENT
cvs checkout -P pgsql

que resulta em duas árvores de diretório, RELEASE/pgsql e CURRENT/pgsql. Deste ponto em diante, o CVS acompanha qual ramificação do repositório está em qual árvore de diretório, permitindo atualizações independentes para cada árvore. [2]

Para trabalhar apenas na árvore de fontes CURRENT, basta fazer tudo como estava sendo feito antes de começar a colocar marcas de ramificação de versão.

Após a baixa (checkout) inicial de uma ramificação

$ cvs checkout -r REL6_4

tudo que é feito dentro desta estrutura de diretório fica restrito a esta ramificação. Se for aplicada uma correção a esta estrutura de diretório e feito um

cvs commit

de dentro desta árvore, a correção será aplicada a esta ramificação, e somente a esta ramificação. [3]

Notas

[1]

Número de revisão — Cada versão do arquivo possui um número de revisão único. Os números de revisão se parecem com "1.1", "1.2", "1.3.2.2", ou mesmo "1.3.2.2.4.5". Um número de revisão sempre possui um número uniforme de inteiros decimais separados por ponto. Por padrão, a revisão "1.1" é a primeira revisão do arquivo. A cada revisão sucessiva é atribuído um novo número acrescentando um ao número mais à direita. Também é possível haver números contendo mais de um ponto como, por exemplo, "1.3.2.2". Estas revisões representam revisões em ramificações. CVS--Concurrent Versions System v1.12.12.1: Revisions (N. do T.)

[2]

Se for desejado trazer duas ramificações como, por exemplo, REL6_4 e REL7_4_1, será necessário criar os subdiretórios RELEASE/REL6_4 e RELEASE/REL7_4_1, e executar os comandos "cvs checkout -P -r REL6_4 pgsql" e "cvs checkout -P -r REL7_4_1 pgsql" a partir destes subdiretórios. (N. do T.)

[3]

Dentro de cada árvore existe o arquivo pgsql/CVS/Tag contendo o nome da ramificação. (N. do T.)

SourceForge.net Logo CSS válido!