Autor: Escrito por Marc G. Fournier (<scrappy@hub.org> ) 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]
[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.) |