summaryrefslogtreecommitdiffstats
path: root/common/cvs-pt.xml
diff options
context:
space:
mode:
authorJosé Nuno Coelho Sanarra Pires <jncp@netcabo.pt>2006-04-07 17:27:01 +0000
committerJosé Nuno Coelho Sanarra Pires <jncp@netcabo.pt>2006-04-07 17:27:01 +0000
commit0ffed3c89ac620d48252f36d91186d0e314bd296 (patch)
tree3738151269ee22445a27c6cf39f059ef2a11060c /common/cvs-pt.xml
parentfcb270977fc58b24d6b89974f27fcda51fa116c3 (diff)
downloadfedora-doc-utils-0ffed3c89ac620d48252f36d91186d0e314bd296.tar.gz
fedora-doc-utils-0ffed3c89ac620d48252f36d91186d0e314bd296.tar.xz
fedora-doc-utils-0ffed3c89ac620d48252f36d91186d0e314bd296.zip
Added CVS notes in Portuguese
Diffstat (limited to 'common/cvs-pt.xml')
-rw-r--r--common/cvs-pt.xml873
1 files changed, 873 insertions, 0 deletions
diff --git a/common/cvs-pt.xml b/common/cvs-pt.xml
new file mode 100644
index 0000000..cf11551
--- /dev/null
+++ b/common/cvs-pt.xml
@@ -0,0 +1,873 @@
+<!-- $Id: -->
+
+<!--
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+ <!ENTITY BOILERPLATE "This header makes editing XML easier">
+ <!ENTITY FC "Fedora Core">
+ <!ENTITY RH "Red Hat">
+
+]>
+-->
+
+<chapter id="ch-cvs">
+ <title>CVS</title>
+ <para>O Concurrent Versions System (<application>CVS</application>) oferece
+ uma plataforma onde vários utilizadores poderão editar os mesmos ficheiros.
+ Como poderá imaginar se um grupo de utilizadores editar os ficheiros numa
+ única pasta, o caos iria reinar. Se usar o <application>CVS</application>,
+ todavia, um grupo de utilizadores poderá estar a trabalhar em segurança no
+ mesmo conjunto de ficheiros. O <application>CVS</application> mantém a
+ cópia-mestra dos ficheiros e regista quem alterou o quê e quando, num
+ repositório central. Se ocorrerem conflitos, o <application>CVS</application>
+ informá-lo-á. O <application>CVS</application> é normalmente usado para que
+ os programadores possam partilhar código, mas também funciona bem para a
+ documentação.
+ </para>
+ <indexterm>
+ <primary>cvs</primary>
+ </indexterm>
+ <section id="sn-cvs-overview">
+ <title>Como Funciona o CVS</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>como funciona</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>introdução</secondary>
+ </indexterm>
+ <para>
+ Na maioria dos casos, cada conjunto de ficheiros que compõe um pacote ou
+ projecto é gravado como um <firstterm>módulo</firstterm> no servidor de
+ CVS.</para>
+
+ <para>Ao lidar com ficheiros no <application>CVS</application>, você
+ <firstterm>extrai</firstterm> uma cópia do módulo para o seu sistema
+ de ficheiros local. Depois de modificar um ou mais ficheiros, o
+ utilizador <firstterm>envia</firstterm> os mesmos ficheiros de volta
+ para o servidor do repositório central do <application>CVS</application>.
+ </para>
+
+ <para>Com o <application>CVS</application> poderá editar um ficheiro sem
+ pedir primeiro permissão ou bloquear o ficheiro. A parte
+ <wordasword>concurrent</wordasword> (concorrente) do nome do
+ <application>CVS</application> vem da sua capacidade de permitir a várias
+ pessoas diferentes editarem partes diferentes do mesmo ficheiro. Desde
+ que nenhuma das alterações se sobreponha, o <application>CVS</application>
+ consegue gravar correctamente as suas alterações. No cas de alterações
+ duplicadas, elas são marcadas de forma clara nos ficheiros e os autores
+ deverão resolver o problema entre eles. </para>
+
+ <para>Quando você envia as alterações, só as alterações aos ficheiros
+ que o servidor reconhece é que são enviadas. Por outras palavras, se
+ criou um ficheiro na sua cópia local do módulo, o ficheiro novo não
+ é enviado automaticamente para o servidor. Precisa primeiro de
+ <firstterm>adicionar</firstterm> o dito ficheiro ao repositório e depois,
+ sim, enviá-lo. Se remover um ficheiro da sua cópia local do módulo,
+ também terá de indicar que o deseja remover do repositório no servidor
+ de CVS e, posteriormente, confirmar a remoção do ficheiro. </para>
+
+ <para
+>Os comandos específicos para efectuar estas acções são discutidos em <xref linkend="sn-cvs-cvscommands"/>. </para>
+
+ <para>Se alguém modificou o ficheiro desde a última altura em que obteve
+ o ficheiro do CVS e quando você tentar enviar uma alteração sua, o
+ <application>CVS</application> irá tentar juntar as alterações na
+ cópia-mestra no servidor do <application>CVS</application>. Se o conteúdo
+ que alterou estiver num local diferente no ficheiro do conteúdo alterado
+ pela outra pessoa, então é possível que a acção de envio seja bem-sucedida
+ sem haver <firstterm>conflitos</firstterm>. Se alguém modificou o mesmo
+ conteúdo que você alterou e então enviar, irá então ver uma mensagem
+ a avisar da ocorrência de um conflito. Como tal, terá de
+ <firstterm>actualizar</firstterm> os seus ficheiros com frequência. É uma
+ boa prática actualizá-los antes de começar a modificá-los. Veja em
+ <xref linkend="sn-cvs-cvscommands-conflicts"/> algumas instruções de
+ resolução de conflitos.</para>
+ </section>
+ <section id="sn-cvs-preparation">
+ <title>Preparar para Usar o CVS</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>preparar a utilização</secondary>
+ </indexterm>
+ <para>Antes de usar o <application>CVS</application>, precisa de
+ estabelecer uma conta com o servidor do <application>CVS</application>.
+ Depois de obter uma conta, já não terá de efectuar estas acções de novo.
+ </para>
+
+ <section id="sn-cvs-rpm-check">
+ <title>O CVS Está Instalado no Seu Sistema</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>Instalação do RPM</secondary>
+ </indexterm>
+ <para>Deverá ter o pacote <abbrev>RPM</abbrev> do
+ <application>CVS</application> instalado. Verifique
+ a sua presença com o comando: </para>
+<screen><prompt>$ </prompt><command>rpm -q cvs</command></screen>
+ <para>Se observar um resultado semelhante a
+ <computeroutput>cvs-1.11.19-1</computeroutput>, então o pacote
+ está instalado. Se aparecer uma mensagem do tipo <computeroutput>o
+ pacote cvs não está instalado</computeroutput>, significa então que
+ é necessário instalar o pacote <application>cvs</application> antes
+ de prosseguir. Se não souber como fazê-lo, consulte o seu administrador
+ de sistema, que podê-lo-á instalar por si. </para>
+ </section>
+
+ <section id="sn-cvs-generate-keys">
+ <title>Gerar as Chaves de SSH</title>
+ <indexterm>
+ <primary>OpenSSH</primary>
+ <secondary>chaves de autorização</secondary>
+ </indexterm>
+ <para>O servidor de <application>CVS</application> usa chaves de
+ <application>SSH</application> Protocolo 2 para autenticar os
+ utilizadores. Como tal, terá de gerar um par de chaves, antes
+ de pedir uma conta de <application>CVS</application>. Se já
+ tiver uma chave <abbrev>DSA</abbrev> do <application>SSH</application>,
+ poderá saltar este passo. </para>
+ <tip>
+ <title>Sugestão</title>
+ <para>Já terá uma chave de <abbrev>DSA</abbrev> se tiver o ficheiro
+ <filename>~/.ssh/id_dsa.pub</filename> no sistema. </para>
+ <para>Se a sua chave <abbrev>DSA</abbrev> existente não precisar de
+ uma <wordasword>frase-senha</wordasword>, é-lhe altamente recomendado
+ que gere uma que peça de facto a senha. </para>
+ </tip>
+ <para>Use os seguintes passos para gerar uma chave <abbrev>DSA</abbrev>
+ usada pelo <application>SSH</application> Protocolo 2. É necessário para
+ uma conta do <application>CVS</application> em
+ <computeroutput>cvs.fedora.redhat.com</computeroutput>. </para>
+ <orderedlist>
+ <indexterm>
+ <primary>OpenSSH</primary>
+ <secondary><command>ssh-keygen</command>
+ </secondary>
+ </indexterm>
+ <indexterm>
+ <primary><command>ssh-keygen</command>
+ </primary>
+ </indexterm>
+ <listitem>
+ <para>Para gerar uma chave <acronym>DSA</acronym> que funcione com a versão do protocolo 2.0, numa consola, escreva o comando: </para>
+<screen><prompt>$ </prompt><command>ssh-keygen -t dsa</command></screen>
+ <para>Aceite a localização por omissão do ficheiro em
+ <filename>~/.ssh/id_dsa</filename>. É-lhe pedido para definir
+ e usar uma <firstterm>frase-senha</firstterm> para melhorar a
+ segurança da sua chave. Indique uma frase-senha diferente da senha
+ da sua conta e confirme-a, introduzindo-a de novo. </para>
+ </listitem>
+ <listitem>
+ <para>Copie a sua chave nova para o ficheiro correcto, escrevendo
+ o seguinte numa linha de comandos. </para>
+<screen><prompt>$ </prompt>
+ <command>cat ~/.ssh/id_dsa.pub&gt;&gt;~/.ssh/authorized_keys</command>
+</screen>
+ <note>
+ <para>Verifique este comando com cuidado, antes de carregar na
+ tecla <guibutton>ENTER</guibutton>. Se o
+ <filename>~/.ssh/authorized_keys</filename> já existir,
+ o conteúdo do <filename>~/.ssh/id_dsa.pub</filename> será
+ adicionado ao fim do ficheiro
+ <filename>~/.ssh/authorized_keys</filename>. </para>
+ </note>
+ </listitem>
+ <listitem>
+ <para>Mude as permissões da sua pasta <filename>~/.ssh</filename>
+ e das suas chaves com os comandos: </para>
+<screen><prompt>$ </prompt><command>chmod 755 ~/.ssh</command>
+<prompt>$ </prompt><command>chmod 644 ~/.ssh/authorized_keys</command></screen>
+ </listitem>
+ </orderedlist>
+ <tip>
+ <title>Sugestão</title>
+ <para>Poderá fazer com que o seu sistema recorde a sua frase-senha,
+ para que não tenha de a escrever, sempre que acede ao servidor do
+ <application>CVS</application>. Veja a documentação do programa
+ <application>ssh-add</application>. </para>
+ </tip>
+ </section>
+ </section>
+ <section id="sn-cvs-config">
+ <title>Configurar o Acesso ao CVS</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>configurar o acesso</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>CVSROOT</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>CVS_RSH</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>CVSROOT</primary>
+ </indexterm>
+ <indexterm>
+ <primary>CVS_RSH</primary>
+ </indexterm>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary><filename>.cvsrc</filename>
+ </secondary>
+ </indexterm>
+ <indexterm>
+ <primary><filename>.cvsrc</filename>
+ </primary>
+ </indexterm>
+ <section id="sn-cvs-config-cvsrc">
+ <title>Evitar a Escrita Repetitiva</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>evitar a escrita repetitiva</secondary>
+ </indexterm>
+ <para>Muitos dos comandos do <application>CVS</application> precisam
+ de certas opções da linha de comandos para funcionarem de forma
+ consistente. Em vez de os escrever, sempre que esse comando é usado,
+ poderá gravar as opções num ficheiro que o <application>CVS</application>
+ irá ler antes de executar a sua linha de comandos. </para>
+
+ <para>Crie um ficheiro chamado <filename>~/.cvsrc</filename> na sua
+ pasta pessoal. Deverá conter os seguintes comandos, estando um por
+ cada linha:
+<screen><computeroutput>cvs -z3
+diff -uNp
+rdiff -uNp
+update -dP</computeroutput></screen>
+ </para>
+ </section>
+
+ <section id="sn-cvs-config-anon">
+ <title>Configurar o Acesso Apenas para Leitura ao CVS</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>configurar o acesso apenas para leitura</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>acesso anónimo</secondary>
+ </indexterm>
+ <para>Se o seu objectivo é transferir os vários documentos do &FC;
+ e gerá-los para o seu sistema, só precisa de acesso apenas para
+ leitura ao repositório do <application>CVS</application>. Siga
+ as instruções desta secção e salte directamente para o
+ <xref linkend="sn-cvs-cvscommands-co"/>. </para>
+
+ <para>Mude as pastas para onde deseja colocar os ficheiros do
+ <application>CVS</application>, e execute os seguintes comandos:
+ </para>
+<screen><prompt>$ </prompt>
+<command>export CVSROOT=:pserver:cvs.fedora.redhat.com:/cvs/docs</command>
+<prompt>$ </prompt><command>cvs login</command>
+<prompt>$ </prompt><command>cvs checkout docs-common</command>
+<replaceable>nome-módulo</replaceable>
+<prompt>$ </prompt><command>cvs checkout</command>
+<replaceable>nome-módulo</replaceable>
+<prompt>$ </prompt><command>cd</command> <replaceable>nome-módulo</replaceable>
+</screen>
+ <para>Logo que tenha obtido o módulo, não interessa com que valor está
+ definido o seu <envar>CVSROOT</envar>, dado que é guardado no ficheiro
+ <filename>CVS/Root</filename> de cada pasta do seu repositório local.
+ Desde que a sua pasta actual tenha uma pasta <filename>CVS/</filename>,
+ o programa <application>CVS</application> irá localizar automaticamente
+ o repositório do &FC;. </para>
+ </section>
+
+ <section id="sn-cvs-config-author">
+ <title>Configurar o Acesso de Leitura/Escrita ao CVS</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>configurar o acesso de leitura/escrita</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>configurar o acesso para os autores</secondary>
+ </indexterm>
+ <para>Para criar um documento novo ou para mudar um existente, terá
+ de obter o acesso completo de leitura/escrita ao repositório de
+ <application>CVS</application> da Documentação do &FC;. Para saber
+ os detalhes completos deste processo, veja na página Web
+ <ulink url="http://fedoraproject.org/wiki/DocsProject/NewWriters">
+ <filename>http://fedoraproject.org/wiki/DocsProject/NewWriters</filename>
+ </ulink>. Em baixo, encontra-se um resumo: </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Subscreva-se na lista de correio
+ <ulink url="https://listman.redhat.com/mailman/listinfo/fedora-docs-list"><filename>fedora-docs-list</filename> </ulink>,
+ que é o fórum principal do projecto. </para>
+ </listitem>
+ <listitem>
+ <para
+>Crie uma chave de GNU Privacy Guard (<abbrev
+>GPG</abbrev
+>) para o identificar no projecto. </para>
+ </listitem>
+ <listitem>
+ <para>Registe uma conta do <ulink url="http://bugzilla.redhat.com/">
+ <filename>Bugzilla</filename> </ulink>, se não tiver já criado
+ alguma. O <filename>Bugzilla</filename> é o método de registar
+ os erros, alterações e projectos. </para>
+ </listitem>
+ <listitem>
+ <para>Publique uma
+ <ulink url="http://fedoraproject.org/wiki/DocsProject_2fSelfIntroduction">auto-apresentação</ulink> na lista. </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Depois da sua
+ <ulink url="http://fedoraproject.org/wiki/DocsProject_2fSelfIntroduction">auto-apresentação</ulink> ter sido aprovada, o acesso de
+ <application>CVS</application> será cedido.
+ </para>
+
+ <para>Todos os autores, e isso inclui-o a si após a recepção da
+ sua auto-apresentação, terão um <envar>$CVSROOT</envar> único
+ para aceder ao repositório do <application>CVS</application>: </para>
+<screen><prompt>$ </prompt><command>export CVSROOT=:ext:</command>
+<replaceable>o-seu-utilizador</replaceable>
+<command>@cvs.fedora.redhat.com:/cvs/docs</command><prompt>$ </prompt>
+<command>export CVS_RSH=/usr/bin/ssh</command></screen>
+ <para>Com as variáveis de ambiente <envar>$CVSROOT</envar> e
+ <envar>$CVS_RSH</envar> correctas, poderá aceder ao repositório: </para>
+<screen><prompt>$ </prompt>
+<command>cvs co -c</command></screen>
+ <para>Será então pedida a frase-senha da sua chave
+ <application>SSH</application>. Carregue em <guibutton>ENTER</guibutton>
+ para receber uma lista dos módulos já existentes no repositório. </para>
+ </section>
+ </section>
+ <section id="sn-cvs-cvscommands">
+ <title>Comandos Básicos do CVS</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>comandos</secondary>
+ </indexterm>
+ <para>Depois de configurar o seu sistema para funcionar com o CVS, faça
+ uma extracção dos módulos com que irá trabalhar. </para>
+ <tip>
+ <title>Sugestão</title>
+ <para>Para ver se precisa de uma variável <envar>$CVSROOT</envar>
+ definida de forma correcta ou da opção da linha de comandos
+ <option>-m </option> <replaceable>repositório</replaceable>, veja
+ se tem uma sub-pasta <filename>CVS/</filename> na sua pasta local
+ de trabalho. </para>
+ <para>Se tiver uma pasta <filename>CVS/</filename>, o
+ <application>CVS</application> irá ignorar o <envar>$CVSROOT</envar>
+ ou a opção da linha de comandos. </para>
+ </tip>
+ <section id="sn-cvs-cvscommands-co">
+ <title>Obter os Módulos</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>obter os módulos</secondary>
+ </indexterm>
+ <para>Só precisa de extrair por completo o módulo uma vez. Depois de
+ ter uma cópia local do módulo no seu sistema, fica de facto por
+ completo no seu sistema. </para>
+
+ <para>Para extrair um módulo, use o seguinte comando: </para>
+<screen><prompt>$ </prompt><command>cvs co</command>
+<replaceable>&lt;nome-módulo&gt;</replaceable></screen>
+ <para>Por exemplo, para extrair o módulo
+<computeroutput>example-tutorial</computeroutput>, vá para a sua pasta
+de trabalho e execute o seguinte comando: </para>
+<screen><prompt>$ </prompt><command>cvs co example-tutorial</command></screen>
+ <para>Será criada uma pasta <filename>example-tutorial/</filename> na
+ sua pasta actual. </para>
+
+ <para>Se não for indicado um nome de ramificação ('branch') ao extrair
+ um módulo, assume-se como sendo o <firstterm>HEAD</firstterm> do módulo
+ do <application>CVS</application>. </para>
+
+ <section id="sn-cvs-cvscommands-co-branch">
+ <title>Extrair Ramificações dos Módulos</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>extrair os módulos</secondary>
+ <tertiary>extrair as ramificações</tertiary>
+ </indexterm>
+ <para>Pense numa ramificação do <application>CVS</application> como
+ sendo uma versão dos ficheiros para uma dada versão em particular de
+ um manual ou pacote. </para>
+
+ <para>Para extrair uma ramificação de um módulo, use o seguinte
+ comando: </para>
+<screen><prompt>$ </prompt><command>cvs co</command> <option>-d</option>
+<replaceable>&lt;pasta&gt;</replaceable> <option>-r</option>
+<replaceable>&lt;nome-ramificação&gt;</replaceable>
+<replaceable>&lt;nome-módulo&gt;</replaceable></screen>
+ <para>Será criada uma pasta <replaceable>&lt;pasta&gt;</replaceable>
+ e os ficheiros da ramificação
+ <replaceable>&lt;nome-ramificação&gt;</replaceable> do módulo
+ <replaceable>&lt;nome-módulo&gt;</replaceable> são copiados
+ para a pasta. </para>
+
+ <para>Por exemplo, para extrair uma ramificação chamada
+ RAMIFICACAO-VERSAO-1.2 do módulo
+ <computeroutput>meu_modulo</computeroutput>, use o comando: </para>
+<screen><prompt>$ </prompt>
+<command>cvs co -d meu_modulo-1.2 -r RAMIFICACAO-VERSAO-1.2 meu_modulo</command></screen>
+ <para>A ramificação RAMIFICACAO-VERSAO-1.2 do módulo é extraída
+ para a pasta <filename>meu_modulo-1.2</filename> no seu sistema.
+ </para>
+
+ <para>Para determinar que ramificações e marcas existem para um
+ dado ficheiro, use o comando: </para>
+<screen><prompt>$ </prompt><command>cvs status</command> <option>-v</option>
+<replaceable>&lt;ficheiro&gt;</replaceable></screen>
+ <para>Por exemplo, o estado do ficheiro <filename>xpto.sgml</filename>
+ é o seguinte: </para>
+<screen><computeroutput>
+===================================================================
+File: xpto.sgml Status: Up-to-date
+
+ Working revision: 1.47
+ Repository revision: 1.47 /cvs/docs/custom-guide/rhl-cg-pt.sgml,v
+ Sticky Tag: (none)
+ Sticky Date: (none)
+ Sticky Options: (none)
+
+ Existing Tags:
+ RAMIFICACAO-VERSAO-1.2 (branch: 1.25.2)
+</computeroutput>
+</screen>
+ <para>Só as marcas que estejam registadas como ramificações na
+ segunda coluna, sob a secção
+ <computeroutput>Existing Tags</computeroutput> (Marcas Existentes)
+ é que poderão ser extraídas como ramificações. </para>
+ </section>
+ </section>
+
+ <section id="sn-cvs-cvscommands-up">
+ <title>Actualizar os Ficheiros</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>actualizar os ficheiros</secondary>
+ </indexterm>
+ <para>Para obter as últimas versões dos ficheiros de um módulo,
+ mude para a pasta que contém os ficheiros do módulo e execute
+ o comando: </para>
+<screen><command>cvs update</command></screen>
+ <para>As últimas versões de todos os ficheiros do módulo serão
+ transferidas para a sua cópia local. Se reparar em algum conflito
+ de ficheiros, consulte depois o
+ <xref linkend="sn-cvs-cvscommands-conflicts"/>. </para>
+ </section>
+
+ <section id="sn-cvs-cvscommands-commit">
+ <title>Enviar os Ficheiros</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>enviar os ficheiros</secondary>
+ </indexterm>
+ <para>Depois de modificar os ficheiros na sua versão local de
+ um módulo, envie-os para gravar as alterações no servidor de
+ <application>CVS</application>: </para>
+<screen><prompt>$ </prompt><command>cvs commit</command> <option>-m</option>
+&quot;<replaceable>uma mensagem de registo</replaceable>&quot;
+<replaceable>ficheiro</replaceable></screen>
+ <note>
+ <para>Se preferir escrever a sua mensagem de registo com o seu editor
+ de texto favorito, como está definido pelas variáveis de ambiente
+ $VISUAL ou $EDITOR, basta omitir o
+ <userinput>-m &quot;uma mensagem de registo&quot;</userinput>.
+ O documento já irá conter comentários a descrever a alteração;
+ não precisa de os remover, à medida que introduz o seu próprio
+ texto. </para>
+ </note>
+
+ <para>A mensagem de registo deverá ser tão descritiva quanto possível,
+ para que você e outra pessoa qualquer que esteja a trabalhar no projecto
+ saiba o que mudou. Se usar uma mensagem de registo do tipo
+ <userinput>alterei alguns ficheiros</userinput>, não está a descrever
+ correctamente o que foi alterado e podê-lo-á não ajudar no futuro.
+ Se estiver a corrigir um erro, use a referência do
+ <application>Bugzilla</application>. </para>
+
+ <para>O <replaceable>&lt;ficheiro&gt;</replaceable> poderá ser um nome
+ de ficheiro, um conjunto de nomes de ficheiros separados por espaços ou
+ um grupo de nomes de ficheiros indicados com caracteres especiais
+ (*, ?), como por exemplo <filename>*.png</filename> ou
+ <filename>xpto-*.sgml</filename>. </para>
+
+ <para>Se não for indicado nenhum nome ou grupo de ficheiros no comando
+ <command>commit</command>, todas as alterações pendentes de qualquer
+ tipo serão enviadas para o servidor. O comando é recursivo e irá incluir
+ as alterações de quaisquer sub-pastas do módulo. Tenha cuidado ao usar
+ o comando <command>commit</command> sem quaisquer nomes de ficheiros,
+ porque poderá não recordar exactamente os ficheiros que mudaram. </para>
+
+ <para>Se reparar num conflito de ficheiros, consulte por favor a
+ secção <xref linkend="sn-cvs-cvscommands-conflicts"/>. </para>
+ </section>
+
+ <section id="sn-cvs-cvscommands-add">
+ <title>Adicionar Ficheiros</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>adicionar ficheiros</secondary>
+ </indexterm>
+ <para>Para adicionar um ficheiro a um módulo, crie o ficheiro na sua
+ cópia local e execute então o seguinte comando: </para>
+<screen><prompt>$ </prompt><command>cvs add</command>
+<replaceable>ficheiro-a-adicionar</replaceable
+></screen>
+ <para>Depois de adicionar o ficheiro, deverá confirmar (fazer
+ <command>commit</command>) da operação <command>add</command> para
+ o copiar para o servidor: </para>
+<screen><prompt>$ </prompt><command>cvs commit</command>
+<option>-m</option> &quot;<replaceable>uma mensagem de registo</replaceable>
+&quot; <replaceable>ficheiro-a-adicionar</replaceable></screen>
+ </section>
+
+ <section id="sn-cvs-cvscommands-admin">
+ <title>Gerir os Ficheiros Binários</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>ficheiros binários</secondary>
+ </indexterm>
+ <para>Os ficheiros que são armazenados com maior frequência são os
+ ficheiros de texto, mas às vezes também poderão ser armazenados
+ ficheiros binários. O programa <application>cvs</application>
+ reconhece a maioria das extensões de ficheiros, como a
+ <filename>.png</filename> ou a <filename>.jpg</filename>,
+ por isso o <application>cvs</application> normalmente
+ &quot;faz a coisa correcta&quot;. </para>
+
+ <para>Quando for extraída uma cópia do repositório, o
+ <application>cvs</application> verifica algumas palavras-chave
+ especiais, do tipo &quot;<computeroutput>$id:$</computeroutput>&quot;
+ e faz a substituição do texto por um valor gerado, como o número de
+ versão do ficheiro. </para>
+
+ <para>A substituição desta palavra-chave normalmente corrompe os
+ ficheiros binários, por isso tem de ser desligada se o
+ <application>cvs</application> não reconhecer o seu ficheiro
+ como binário. Para marcar o seu ficheiro como binário e, deste
+ modo, desligar a expansão de palavras-chave, use o comando: </para>
+<screen width="60"><prompt>$ </prompt><command>cvs</command>
+<option>admin</option> <option>-kk</option> <replaceable>ficheiro</replaceable>
+</screen>
+ <para>Lembre-se que o ficheiro já deverá estar extraído do
+ repositório de <abbrev>CVS</abbrev>, antes de o comando
+ <option>admin</option> poder ser usado. Isto está OK,
+ dado que a expansão é feita quando o ficheiro é obtido
+ e copiado para a pasta local, não quando é enviado para
+ o repositório. </para>
+ <tip>
+ <title>Recuperar um ficheiro binário</title>
+ <para>Se extrair um ficheiro binário para o repositório e descobrir
+ então que este está corrompido, não entre em pânico. Basta usar o
+ comando <option>admin</option> descrito acima, remover a sua cópia
+ local e transferi-la de novo. </para>
+ </tip>
+ </section>
+
+ <section id="sn-cvs-cvscommands-rm">
+ <title>Remover os Ficheiros</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>remover os ficheiros</secondary>
+ </indexterm>
+ <para>Se um dado ficheiro não for mais necessário no módulo, use
+ o comando <command>remove</command> para o remover da sua cópia
+ local e então confirme (faça um <command>commit</command>) da
+ remoção no servidor. Ainda que o ficheiro seja removido da versão
+ actual do módulo, é mantida uma cópia em arquivo no servidor, que
+ poderá ser obtida em qualquer altura com o comando
+ <command>add</command>. </para>
+<screen><prompt>$ </prompt><command>cvs rm -f</command>
+<replaceable>ficheiro-a-remover</replaceable></screen>
+ <para>Depois de remover, terá de confirmar a remoção: </para>
+<screen><prompt>$ </prompt><command>cvs commit</command>
+<option>-m</option>&quot;<replaceable>uma mensagem de registo</replaceable>
+&quot; <replaceable>ficheiro-a-remover</replaceable></screen>
+ <para>Não poderá usar caracteres especiais (*, ?) no comando
+ <command>commit</command>, para identificar os ficheiros
+ removidos. Estes deverão ser indicados com um nome de ficheiro
+ exacto. </para>
+
+ <para>Se precisar de mudar o nome de um ficheiro, é melhor mudar
+ o nome do ficheiro no servidor de <application>CVS</application>,
+ para que o histórico do ficheiro se mantenha. Se precisar de mudar
+ o nome de um ficheiro, envie um e-mail para o
+ <ulink url="mailto:cvsdocs-administrator@fedora.redhat.com">
+ <filename>cvsdocs-administrator@fedora.redhat.com</filename>
+ </ulink> a pedir a mudança do nome do ficheiro. </para>
+ </section>
+
+ <section id="sn-cvs-cvscommands-status">
+ <title>Estado dos Ficheiros</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>estado dos ficheiros</secondary>
+ </indexterm>
+ <para>Algumas vezes é necessário ver o <firstterm>estado</firstterm>
+ de um ficheiro num módulo do <application>CVS</application>. Para ver
+ o estado de um ficheiro, use o comando: </para>
+<screen><prompt>$ </prompt><command>cvs status</command>
+<replaceable>ficheiro</replaceable></screen>
+ <para>O relatório do estado de um ficheiro do repositório é o
+ seguinte: </para>
+
+ <variablelist>
+ <varlistentry>
+ <term><computeroutput>Actualizado ('Up-to-date')</computeroutput></term>
+ <listitem>
+ <para>A sua versão do ficheiro é idêntica à última versão no
+ servidor do <application>CVS</application>. </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>Modificado Localmente ('Locally Modified')</computeroutput></term>
+ <listitem>
+ <para>Você actualizou-se para a última versão do servidor,
+ mas depois modificou o ficheiro no seu sistema. </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>Adicionado Localmente ('Locally Added')</computeroutput></term>
+ <listitem>
+ <para>Você adicionou o ficheiro com o comando
+ <command>cvs add</command>, mas ainda não confirmou
+ a adição do ficheiro. </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>Removido Localmente ('Locally Removed')</computeroutput
+></term>
+ <listitem>
+ <para>Você removeu o ficheiro com o comando
+ <command>cvs remove</command> mas ainda não
+ confirmou a remoção. </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>Necessita de Extracção
+ ('Needs Checkout')</computeroutput></term>
+ <listitem>
+ <para>Existe uma versão mais recente do ficheiro no servidor
+ e é necessário obtê-la de novo. Ainda que o estado inclua
+ a palavra 'checkout', significa de facto que é necessário
+ actualizar os seus ficheiros com o comando
+ <command>cvs update</command>. </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>Necessita de Actualização
+ ('Needs Patch')</computeroutput></term>
+ <listitem>
+ <para>A versão na sua extracção local necessita de uma
+ actualização com a última versão do servidor. Execute
+ o comando <command>cvs update</command> para a resolver. </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>Necessita de Junção ('Needs Merge')</computeroutput></term>
+ <listitem>
+ <para>Existe uma versão mais recente no servidor e a sua versão
+ local contém modificações ainda não enviadas. Este estado ocorre
+ normalmente se não tiver a última versão do ficheiro e a quiser
+ editar à mesma. </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>O ficheiro tinha conflitos na junção</computeroutput></term>
+ <listitem>
+ <para>É semelhante ao <computeroutput>Needs Merge</computeroutput>,
+ excepto quando tentou enviar o comando <command>cvs
+ update</command>, as diferenças não conseguiram ser resolvidas
+ automaticamente. Veja em
+ <xref linkend="sn-cvs-cvscommands-conflicts"/> para mais
+ informações sobre a resolução de conflitos. </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>Desconhecido ('Unknown')</computeroutput></term>
+ <listitem>
+ <para>O servidor do <application>CVS</application> não sabe nada
+ acerca deste ficheiro. Nunca foi adicionado nem removido localmente
+ e nunca foi enviado para o servidor. Este estado ocorre normalmente
+ nos ficheiros que não deverá mandar para o
+ <application>CVS</application>, como o
+ <filename>indice-gerado.sgml</filename> ou nos ficheiros que
+ deseja adicionar ao repositório, mas que ainda não foram
+ adicionados com o comando <command>cvs add</command>. </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="sn-cvs-cvscommands-conflicts">
+ <title
+>Resolver os Conflitos</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>resolver os conflitos</secondary>
+ </indexterm>
+ <para>Se modificar um ficheiro e a mesma região for modificada por
+ alguém e foi enviada em primeiro lugar, poderá ver uma mensagem
+ semelhante à seguinte ao enviar o ficheiro ou ao actualizar a sua cópia
+ local do módulo: </para>
+<screen><computeroutput>
+RCS file: /cvs/docs/nome-modulo/ficheiro.sgml,v
+retrieving revision 1.12
+retrieving revision 1.13
+Merging differences between 1.12 and 1.13 into ficheiro.sgml
+rcsmerge: warning: conflicts during merge
+cvs server: conflicts found in ficheiro.sgml
+C ficheiro.sgml
+</computeroutput>
+</screen>
+ <para>Para resolver o conflito, abra o ficheiro, procure pelas
+ sequências <computeroutput>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</computeroutput>
+ e determine qual a versão do conteúdo que está correcta. Por exemplo:
+ </para>
+<screen><computeroutput>
+&lt;para&gt;
+Uma frase
+&lt;&lt;&lt;&lt;&lt;&lt;&lt; ficheiro.sgml
+Uma frase que foi modificada na cópia local.
+=======
+Uma frase parecida que foi mudada de forma diferente e enviada.
+&gt;&gt;&gt;&gt;&gt;&gt;&gt; 1.13
+&lt;/para&gt;
+</computeroutput>
+</screen>
+ <para>O conteúdo entre o <computeroutput>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</computeroutput>e o <computeroutput>=======</computeroutput> é o conteúdo da
+ sua cópia local. O conteúdo entre o
+ <computeroutput>=======</computeroutput> e o
+ <computeroutput>&gt;&gt;&gt;&gt;&gt;&gt;&gt;</computeroutput>
+ é o conteúdo proveniente do servidor. </para>
+
+ <para>Resolva o conflito, editando a sua cópia, e envie
+ o ficheiro.</para>
+ </section>
+
+ <section id="sn-cvs-cvscommands-summary">
+ <title>Resumo</title>
+ <indexterm>
+ <primary>cvs</primary>
+ <secondary>comandos</secondary>
+ <tertiary>resumo de</tertiary>
+ </indexterm>
+ <para>Todos os comandos assumem que você está na pasta correcta
+ do módulo do <application>CVS</application>. </para>
+ <table frame="all" id="tb-cvs-basic-commands">
+ <title>Comandos Básicos do CVS</title>
+ <tgroup cols="2">
+ <colspec colnum="1" colname="shortcut" colwidth="30"/>
+ <colspec colnum="2" colname="description" colwidth="60"/>
+ <thead>
+ <row>
+ <entry>Comando</entry>
+ <entry>Descrição</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <command>cvs checkout <replaceable>&lt;nome-módulo&gt;</replaceable></command> ou <command>cvs co <replaceable>&lt;nome-módulo&gt;</replaceable></command> </entry>
+ <entry>Cria uma pasta chamada
+ <replaceable>&lt;nome-módulo&gt;</replaceable> com o conteúdo do
+ módulo na pasta</entry>
+ </row>
+ <row>
+ <entry><command>cvs co -d <replaceable>&lt;pasta&gt;</replaceable>
+ -r <replaceable>&lt;ramificação&gt;</replaceable>
+ <replaceable>&lt;nome-módulo&gt;</replaceable></command>
+ </entry>
+ <entry>Cria a pasta <replaceable>&lt;pasta&gt;</replaceable> com
+ o conteúdo da ramificação
+ <replaceable>&lt;ramificação&gt;</replaceable> do módulo
+ <replaceable>&lt;nome-módulo&gt;</replaceable></entry>
+ </row>
+ <row>
+ <entry><command>cvs update</command> ou <command>cvs up</command> </entry>
+ <entry>Actualiza os seus ficheiros com as últimas versões do
+ servidor de CVS</entry>
+ </row>
+ <row>
+ <entry><command>cvs add <replaceable>&lt;ficheiro&gt;
+ </replaceable></command>
+ </entry>
+ <entry>Adiciona um ficheiro "ficheiro" novo ao servidor
+ do CVS</entry>
+ </row>
+ <row>
+ <entry><command>cvs commit -m "A minha mensagem"
+ <replaceable>&lt;ficheiro&gt;</replaceable></command>
+ </entry>
+ <entry>Actualiza o ficheiro
+ <replaceable>&lt;ficheiro&gt;</replaceable> com a última
+ cópia do seu computador</entry>
+ </row>
+ <row>
+ <entry><command>cvs log
+ <replaceable>&lt;ficheiro&gt;</replaceable></command>
+ </entry>
+ <entry>Vê as mensagens de registo do envio do ficheiro
+ <replaceable>&lt;ficheiro&gt;</replaceable> </entry>
+ </row>
+ <row>
+ <entry><command>cvs status
+ <replaceable>&lt;ficheiro&gt;</replaceable></command>
+ </entry>
+ <entry>Vê o estado do ficheiro, como algo do tipo
+ <computeroutput>Locally Modified</computeroutput>
+ (Modificado Localmente) </entry>
+ </row>
+ <row>
+ <entry><command>cvs status -v
+ <replaceable>&lt;ficheiro&gt;</replaceable></command>
+ </entry>
+ <entry>Vê as marcas e ramificações existentes do ficheiro</entry>
+ </row>
+ <row>
+ <entry><command>cvs diff
+ <replaceable>&lt;ficheiro&gt;</replaceable></command>
+ </entry>
+ <entry>Mostra as diferenças entre a cópia local do ficheiro
+ e a última versão do ficheiro na ramificação</entry>
+ </row>
+ <row>
+ <entry><command>cvs diff -r1.1 -r1.2
+ <replaceable>&lt;ficheiro&gt;</replaceable></command>
+ </entry>
+ <entry>Mostra as diferenças entre a versão 1.1 e a 1.2
+ do ficheiro</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <para>Para mais informações, veja o manual do CVS disponível no seu
+ sistema em <filename>/usr/share/doc/cvs-<replaceable>&lt;número-versão&gt;</replaceable>/cvs.ps</filename> (a versão do CVS poderá variar) e vá à página
+Web do CVS, que está disponível em
+<ulink url="http://www.cvshome.org/">http://www.cvshome.org/</ulink>. </para>
+ <tip>
+ <title>Sugestão</title>
+ <para>Dado que o <application>CVS</application> está a usar o
+ <application>ssh</application> para se ligar ao servidor do
+ <application>CVS</application>, ser-lhe-á pedida a sua senha
+ antes de efectuar o seu pedido de <application>CVS</application>.
+ Se quiser configurar a sua máquina para que não tenha de introduzir
+ uma senha, veja no
+ <ulink url="http://redhat.com/docs/manuals/linux/RHL-9-Manual/custom-guide/s1-openssh-client-config.html">
+<citetitle>Guia de Personalização do &RH; Linux 9</citetitle> </ulink>
+para mais detalhes sobre a utilização do <command>ssh-agent</command>. </para>
+ </tip>
+ </section>
+ </section>
+</chapter>