docs-common/common cvs-pt.xml,NONE,1.1

José Nuno Coelho Sanarra Pires (zepires) fedora-docs-commits at redhat.com
Fri Apr 7 17:27:03 UTC 2006


Author: zepires

Update of /cvs/docs/docs-common/common
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv13303

Added Files:
	cvs-pt.xml 
Log Message:
Added CVS notes in Portuguese


--- NEW FILE cvs-pt.xml ---
<!-- $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 at fedora.redhat.com">
      <filename>cvsdocs-administrator at 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>




More information about the docs-commits mailing list