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

Hugo Cisneiros (eitch) fedora-docs-commits at redhat.com
Thu May 4 18:24:09 UTC 2006


Author: eitch

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

Added Files:
	cvs-pt_BR.xml 
Log Message:
Finished pt_BR translation


--- NEW FILE cvs-pt_BR.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>)
    fornece uma plataforma onde últiplos usuários podem editar os mesmos
    arquivos. Imagine que se um grupo de usuários editam arquivos em um único
    diretório, o caos pode reinar. Entretanto, usando o
    <application>CVS</application>, um grupo de pessoas pode trabalhar de forma
    segura no mesmo conjunto de arquivos. O <application>CVS</application>
    mantém uma cópia mestre dos arquivos, e grava em um repositório central quem
    modificou que arquivo e quando. Se conflitos surgem, o
    <application>CVS</application> lhe diz. O <application>CVS</application> é
    geralmente usado por programadores que compartilham códigos, mas também
    funciona bem para documentação.
  </para>
  <indexterm>
    <primary>cvs</primary>
  </indexterm>
  <section id="sn-cvs-overview">
    <title>Como o CVS Trabalha</title>
    <indexterm>
      <primary>cvs</primary>
      <secondary>como ele trabalha</secondary>
    </indexterm>
    <indexterm>
      <primary>cvs</primary>
      <secondary>visão geral</secondary>
    </indexterm>
    <para>
      Em muitos casos, cada conjunto de arquivos que formam um pacote ou projeto
      é armazenado como um <firstterm>módulo</firstterm> no servidor CVS.
    </para>

    <para>
      Quando trabalhando com arquivos no <application>CVS</application>, você
      pode extrair (<firstterm>checkout</firstterm>) uma cópia do módulo para o
      seu sistema de arquivos local. Depois de modificar um ou mais arquivos,
      você pode enviá-los (<firstterm>commit</firstterm>) de volta para o
      repositório central do servidor <application>CVS</application>.
    </para>

    <para>
      Com o <application>CVS</application> você pode editar um arquivo sem
      primeiro pegar permissão ou bloqueando o arquivo. A parte concorrente
      (<wordasword>concurrent</wordasword>) do arquivo no
      <application>CVS</application> tem a habilidade de permitir muitas pessoas
      diferentes a editar diferentes partes do arquivo. Contanto que nenhuma das
      mudanças gerem conflito entre si, o <application>CVS</application> pode
      corretamente gravar as mudanças. Em caso de mudanças duplicadas, elas são
      marcadas nos arquivos e os autores podem resolver o problema entre eles.
    </para>

    <para>
      Quando você aplica as mudanças, apenas mudanças em arquivos que o servidor
      conhece são aplicadas. Em outras palavras, quando você cria um arquivo em
      sua cópia local do módulo, o novo arquivo não é automaticamente atualizado
      no servidor. Você precisa adicionar (<firstterm>add</firstterm>) o arquivo
      ao repositório para depois aplicá-lo enviando (commit). Se você remover o
      arquivo da sua cópia local do módulo, você precisa especificar que você
      deseja removê-lo do diretório no servidor CVS e depois aplicar a remoção
      do arquivo.
    </para>

    <para>
      Os comandos especificos para executar estas ações são descritos em
      <xref linkend="sn-cvs-cvscommands"></xref>.
    </para>

    <para>
      Se alguém modificou o arquivo entre a última vez que você pegou o arquivo
      do CVS e quando você tentou aplicar as mudanças, o
      <application>CVS</application> tentará mesclar as mudanças na cópia mestre
      do servidor <application>CVS</application>. Se o conteúdo que você
      modificou está em uma localização diferente no arquivo do que as mudanças
      que outra pessoa modificou, as chances são de que a ação de aplicar terá
      sucesso sem nenhum <firstterm>conflict</firstterm>. Se alguém modificou o
      mesmo conteúdo que você e tentar aplicar, você verá uma mensagem de que um
      conflito no arquivo ocorreu. Por isso, você precisa atualizar
      (<firstterm>update</firstterm>) seus arquivos freqüentemente. É uma boa
      prática atualizá-los logo antes de começar a modificar um arquivo. Veja na 
      <xref linkend="sn-cvs-cvscommands-conflicts"></xref> para instruções em
      como resolver conflitos.
    </para>
  </section>
  <section id="sn-cvs-preparation">
    <title>Preparando-se Para Usar o CVS</title>
    <indexterm>
      <primary>cvs</primary>
      <secondary>preparando-se para usar</secondary>
    </indexterm>
    <para>
      Antes de usar o <application>CVS</application>, você precisa estabelecer
      uma conta no servidor <application>CVS</application>. Depois de conseguir
      uma conta, você não precisa fazer estes passos novamente.
    </para>

    <section id="sn-cvs-rpm-check">
      <title>O CVS Está Instalado em Seu Sistema?</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>instalação por RPM</secondary>
      </indexterm>
      <para>
        Você deve ter o pacote <abbrev>RPM</abbrev> do
	<application>CVS</application> instalado. Verifique a sua presença
	digitando o comando:
      </para>
<screen><prompt>$ </prompt><command>rpm -q cvs</command></screen>
      <para>
        Se você ver uma saída parecida com
	<computeroutput>cvs-1.11.19-1</computeroutput>, então o pacote está
	instalado. Uma mensagem parecida com <computeroutput>package cvs is not
	installed</computeroutput> quer dizer que você precisa instalar o pacote
	<application>cvs</application> antes de continuar. Se você não sabe como
	fazer isso, consulte o seu administrador de sistemas que possa
	instalá-lo para você.
      </para>
    </section>

    <section id="sn-cvs-generate-keys">
      <title>Gerando as Chaves SSH</title>
      <indexterm>
        <primary>OpenSSH</primary>
        <secondary>chaves de autorização</secondary>
      </indexterm>
      <para>
        O servidor <application>CVS</application> usa chaves do Protocolo 2 do
	<application>SSH</application> para autenticar usuários. Por isso você
	precisará gerar um par de chaves antes de conseguir uma conta no
	<application>CVS</application>. Se você já tem uma chave
	<abbrev>DSA</abbrev> do <application>SSH</application>, pode pular este
	passo.
      </para>
      <tip>
        <title>Dica</title>
        <para>
	  Você já tem uma chave <abbrev>DSA</abbrev> caso você tenha o arquivo
	  <filename>~/.ssh/id_dsa.pub</filename> em seu sistema.
        </para>
        <para>
	  Se sua chave <abbrev>DSA</abbrev> existente não precisa de uma
	  frase-senha (<wordasword>passphrase</wordasword>), é altamente
	  recomendado que você gere outra que precisa de uma frase-senha.
        </para>
      </tip>
      <para>
        Use os seguintes passos para gerar uma chave <abbrev>DSA</abbrev> usada
	pelo Protocolo 2 do <application>SSH</application>. Ela é necessária
	para uma conta <application>CVS</application> no servidor
	<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 trabalhe com a
	    versão 2.0 do protoclo, digite na linha de comando:
          </para>
<screen><prompt>$ </prompt><command>ssh-keygen -t dsa</command></screen>
          <para>
	    Aceite a localização de arquivo padrão no
	    <filename>~/.ssh/id_dsa</filename>. É altamente recomendado que você
	    defina e use uma frase-senha (<firstterm>passphrase</firstterm>)
	    para melhorar a segurança da sua chave. Entre com uma frase-senha
	    diferente da sua senha de conta e confirme digitando-a novamente.
          </para>
        </listitem>
        <listitem>
          <para>
	    Copie a sua nova chave para o arquivo correto digitando o seguinte
	    na linha de comando.
          </para>
<screen><prompt>$ </prompt><command>cat ~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys</command></screen>
          <note>
            <para>
	      Verifique este comando com cuidado antes de pressionar a tecla
	      <guibutton>ENTER</guibutton>. Se o arquivo
	      <filename>~/.ssh/authorized_keys</filename> já existir, o conteúdo
	      do <filename>~/.ssh/id_dsa.pub</filename> irá ser adicionado ao
	      fim do arquivo <filename>~/.ssh/authorized_keys</filename>.
            </para>
          </note>
        </listitem>
        <listitem>
          <para>
	    Mude as permissões do seu diretório <filename>~/.ssh</filename> e de
	    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>Dica</title>
        <para>
	  Você pode fazer com que o seu sistema lembre-se de sua frase-senha
	  para que você não tenha que digitar toda vez que acessar o servidor
	  <application>CVS</application>. Veja a documentação do programa
	  <application>ssh-add</application>.
        </para>
      </tip>
    </section>
  </section>
  <section id="sn-cvs-config">
    <title>Configurando Para Um Acesso CVS</title>
    <indexterm>
      <primary>cvs</primary>
      <secondary>configurando para 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>Evitando Digitações Repetitivas</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>evitando digitações repetitivas</secondary>
      </indexterm>
      <para>
        Muitos comandos <application>CVS</application> precisam de certos
	parâmetros de linha de comando para operar consistentemente. Ao invés de
	digitá-los toda vez que o comando é usado, você pode salvar estes
	parâmetros em um arquivo que o <application>CVS</application> irá ler
	antes de executar a sua linha de comando.
      </para>

      <para>
        Crie um arquivo chamado <filename>~/.cvsrc</filename> no seu diretório
	home. Ele deve conter os seguintes comandos, um por linha:
<screen><computeroutput>cvs -z3
diff -uNp
rdiff -uNp
update -dP</computeroutput></screen>
      </para>
    </section>

    <section id="sn-cvs-config-anon">
      <title>Configurando para Acesso CVS Somente-Leitura</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>configurando acesso somente-leitura</secondary>
      </indexterm>
      <indexterm>
        <primary>cvs</primary>
        <secondary>acesso anônimo</secondary>
      </indexterm>
      <para>
        Se o seu objetivo é efetuar download das várias documentações do &FC; e
	renderizar em seu sistema, você precisará apenas de acesso
	somente-leitura no repositório <application>CVS</application>. Siga as
	instruções desta seção e então pule diretamente para a <xref
	linkend="sn-cvs-cvscommands-co"/>.
      </para>

      <para>
        Mude o diretório para onde você quer que seus arquivos do
	<application>CVS</application> estejam localizados, e então 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>module-name</replaceable>
<prompt>$ </prompt><command>cvs checkout</command> <replaceable>module-name</replaceable>
<prompt>$ </prompt><command>cd</command> <replaceable>module-name</replaceable></screen>
      <para>
        Uma vez que você tenha obtido o módulo, não importa o que estiver em sua
	variável <envar>CVSROOT</envar> porque o dado é armazenado no arquivo
	<filename>CVS/Root</filename> em cada diretório do seu repositório
	local. Enquanto o seu diretório de trabalho atual tiver um diretório
	<filename>CVS/</filename>, o programa <application>CVS</application> irá
	localizar automaticamente o repositório &FC;.
      </para>
    </section>

    <section id="sn-cvs-config-author">
      <title>Configurando Acesso CVS Leitura/Escrita</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>configurando acesso leitura/escrita</secondary>
      </indexterm>
      <indexterm>
        <primary>cvs</primary>
        <secondary>configurando acesso para autores</secondary>
      </indexterm>
      <para>
        Para criar um novo documento ou modificar um já existente, você precisa
	obter acesso leitura/escrita completo ao repositório CVS de
	Documentação &FC;. Para detalhes completos sobre este processo, veja no
	site <ulink
	url="http://fedoraproject.org/wiki/DocsProject/NewWriters"><filename>http://fedoraproject.org/wiki/DocsProject/NewWriters</filename>.
	Abaixo está um pequeno resumo:
      </para>

      <itemizedlist>
        <listitem>
          <para>
	    Inscreva-se na <ulink
	    url="https://listman.redhat.com/mailman/listinfo/fedora-docs-list"><filename>fedora-docs-list</filename>
	    </ulink>, que é a lista principal do projeto.
          </para>
        </listitem>
        <listitem>
          <para>
	    Gere uma chave GNU Privacy Guard (<abbrev>GPG</abbrev>) para você se
	    identificar no projeto.
          </para>
        </listitem>
        <listitem>
          <para>
	    Registre uma conta no <ulink
	    url="http://bugzilla.redhat.com/"><filename>Bugzilla</filename>
	    </ulink>, se você já não tem uma. O <filename>Bugzilla</filename> é
	    o método que usamos para acompanhar bugs, mudanças e projetos.
          </para>
        </listitem>
        <listitem>
          <para>
	    Envie uma <ulink
	    url="http://fedoraproject.org/wiki/DocsProject_2fSelfIntroduction">apresentação
	    de si</ulink> na lista.
          </para>
        </listitem>
      </itemizedlist>

      <para>
        Depois que sua <ulink
	url="http://fedoraproject.org/wiki/DocsProject_2fSelfIntroduction">apresentação
	de si</ulink> for aprovada, seu acesso <application>CVS</application>
	será garantido.
      </para>

      <para>
        Todo autor, e isso inclui você depois da sua apresentação, recebe uma
	variável <envar>$CVSROOT</envar> única para acessar o repositório
	<application>CVS</application>:
      </para>
<screen><prompt>$ </prompt><command>export CVSROOT=:ext:</command><replaceable>seunome</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>
        funcionando, você pode acessar o repositório:
      </para>
<screen><prompt>$ </prompt><command>cvs co -c</command></screen>
      <para>
        Você terá que digitar sua frase-senha para a sua chave
        <application>SSH</application>. Pressione
        <guibutton>ENTER</guibutton>
	e você deverá receber uma lista de módulos que já estão no repositório.
      </para>
    </section>
  </section>
  <section id="sn-cvs-cvscommands">
    <title>Comandos Básicos de CVS</title>
    <indexterm>
      <primary>cvs</primary>
      <secondary>comandos</secondary>
    </indexterm>
    <para>
      Depois de configurar seu sistema para trabalhar com CVS, extraia os
      módulos que você irá trabalhar.
    </para>
    <tip>
      <title>Dica</title>
      <para>
        Para ver se você precisa de uma variável 
	<envar>$CVSROOT</envar>
	configurada corretamente,  ou um parâmetro
	<option>-m </option>
        <replaceable>repositório</replaceable>, veja se você tem um subdiretório
	chamado <filename>CVS/</filename> no diretório atual.
      </para>
      <para>
        Se você tem um diretório <filename>CVS/</filename>, o
	<application>CVS</application> ignora totalmente a variável
	<envar>$CVSROOT</envar> ou o parâmetro <option>-m</option>.
      </para>
    </tip>
    <section id="sn-cvs-cvscommands-co">
      <title>Extraindo Módulos</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>extraindo módulos</secondary>
      </indexterm>
      <para>
        Você só precisar extrair um módulo uma vez. Depois que uma cópia local
	do módulo estiver em seu sistema, ela estará em seu sistema.
      </para>

      <para>
        Para extrair um módulo, use o seguinte comando:
      </para>
<screen><prompt>$ </prompt><command>cvs co</command> <replaceable><nome-do-modulo></replaceable></screen>
      <para>
       
        Por exemplo, para extrair o módulo
	<computeroutput>example-tutorial</computeroutput>, mude o seu atual
	diretório, e execute o seguinte comando:
      </para>
<screen><prompt>$ </prompt><command>cvs co example-tutorial</command></screen>
      <para>
        Um diretório chamado <filename>example-tutorial/</filename> é criado
	dentro do diretório atual.
      </para>

      <para>
        Se um nome de árvore não é especificado ao extrair um módulo, ele é
	referenciado com a árvore <firstterm>HEAD</firstterm> do módulo
	<application>CVS</application>.
      </para>

      <section id="sn-cvs-cvscommands-co-branch">
        <title>Extraindo Árvores de Módulos</title>
        <indexterm>
          <primary>cvs</primary>
          <secondary>extrair módulos</secondary>
          <tertiary>extraindo árvores</tertiary>
        </indexterm>
        <para>
	  Pense na árvore <application>CVS</application> como uma versão dos
	  arquivos para uma versão particular de um manual ou pacote.
        </para>

        <para>
	  Para extrair uma árvore de um módulo, use o seguinte comando:
        </para>
<screen><prompt>$ </prompt><command>cvs co</command> <option>-d</option> <replaceable><diretório></replaceable> <option>-r</option> <replaceable><nome-da-árvore></replaceable> <replaceable><nome-do-módulo></replaceable></screen>
        <para>
	  Um diretório chamado <replaceable><diretório></replaceable> é
	  criado, e os arquivos da árvore
	  <replaceable><nome-da-árvore></replaceable> do módulo 
	  <replaceable><nome-do-módulo></replaceable> são copiados para
	  este diretório.
        </para>

        <para>
	  Por exemplo, para extrair uma árvore chamada BRANCH-VERSION-1.2
	  do módulo <computeroutput>mymodule</computeroutput>, use o comando:
        </para>
<screen><prompt>$ </prompt><command>cvs co -d mymodule-1.2 -r BRANCH-VERSION-1.2 mymodule</command></screen>
        <para>
	  A árvore BRANCH-VERSION-1.2 do módulo é extraída para o diretório
	  <filename>mymodule-1.2</filename> em seu sistema.
        </para>

        <para>
	  Para determinar que árvores e tags existem para um arquivo, use o
	  comando:
        </para>
<screen><prompt>$ </prompt><command>cvs status</command> <option>-v</option> <replaceable><nomedoarquivo></replaceable></screen>
        <para>
	  Por exemplo, o status do arquivo <filename>foo.sgml</filename> é o
	  seguinte:
        </para>
<screen>
<computeroutput>
===================================================================
File: foo.sgml    Status: Up-to-date

   Working revision:    1.47
   Repository revision: 1.47    /cvs/docs/custom-guide/rhl-cg-en_US.sgml,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

   Existing Tags:
        BRANCH-VERSION-1.2              (branch: 1.25.2)
</computeroutput>
</screen>
        <para>
	  Apenas as tags marcadas como árvores na segunda coluna da seção
	  <computeroutput>Existing Tags</computeroutput> (Tags Existentes) podem
	  ser extraídas como uma árvore.
        </para>
      </section>
    </section>

    <section id="sn-cvs-cvscommands-up">
      <title>Atualizando Arquivos</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>atualizando arquivos</secondary>
      </indexterm>
      <para>
        Para obter as últimas versões dos arquivos de um módulo, mude para o
	diretório que contém os arquivos para o módulo e execute o comando:
      </para>
<screen><command>cvs update</command></screen>
      <para>
        Será efetuado o download das últimas versões de todos os arquivos no
	módulo e colocado em sua cópia local. Se você notar algum conflito de
	arquivo, veja a <xref linkend="sn-cvs-cvscommands-conflicts"></xref>.
      </para>
    </section>

    <section id="sn-cvs-cvscommands-commit">
      <title>Enviando Arquivos</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>enviando arquivos</secondary>
      </indexterm>
      <para>
        Depois de modificar os arquivos em sua versão local do módulo, envie-os
	(commit) para salvar as mudanças no servidor
	<application>CVS</application>:
      </para>
<screen><prompt>$ </prompt><command>cvs commit</command> <option>-m</option> "<replaceable>mensagem de log</replaceable>" <replaceable>nomedoarquivo</replaceable></screen>
      <note>
        <para>
	  Se você prefere escrever as mensagens de log com seu editor de textos
	  preferidos, como definido nas variáveis de mabiente $VISUAL ou
	  $EDITOR, apenas omita o parâmetro <userinput>-m "mensagem
	  de log"</userinput>. O documento já terá comentários descrevendo
	  a mudança; você não precisa removê-los quando for escrever seu
	  próprio texto.
        </para>
      </note>

      <para>
        A mensagem de log deve ser o quanto mais descritiva possível para que
	você e qualquer outra pessoa trabalhando no módulo entenda o que foi
	mudado. Usar uma mensagem de log como por exemplo <userinput>atualizado
	alguns arquivos</userinput> não descreve necessariamente o que foi
	mudado e não irá ajudá-lo no futuro. Se você está corrigindo um bug, use
	a referência do <application>Bugzilla</application>.
      </para>

      <para>
        O <replaceable><nomedoarquivo></replaceable> pode ser um arquivo,
	uma série de arquivos separados por espaço, ou um grupo de arquivos
	especificados com wildcards (coringas) como por exemplo
	<filename>*.png</filename> ou <filename>foo-*.sgml</filename>.
      </para>

      <para>
        Se nehum arquivo ou grupo de arquivos é especificado no comando
	<command>commit</command>, todas as mudanças de todos os tipos serão
	enviadas ao servidor. O comando é recursivo e incluirá também mudanças
	em subdiretórios do módulo. Tenha cuidado quando usar o comando
	<command>commit</command> sem especificar arquivos porque você pode não
	lembrar exatamente que arquivos foram modificados.
      </para>

      <para>
        Se você notar algum conflito de arquivo, veja a <xref
	linkend="sn-cvs-cvscommands-conflicts"></xref>.
      </para>
    </section>

    <section id="sn-cvs-cvscommands-add">
      <title>Adicionando Arquivos</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>adicionando arquivos</secondary>
      </indexterm>
      <para>
        Para adicionar um arquivo a um módulo, crie o arquivo em sua cópia local
	e execute o seguinte comando:
      </para>
<screen><prompt>$ </prompt><command>cvs add</command> <replaceable>arquivo-a-adicionar</replaceable></screen>
      <para>
        Depois de adicionar o arquivo, você precisará aplicar
	(<command>commit</command>) o comando <command>add</command> para copiar
	o arquivo para o servidor:
      </para>
<screen><prompt>$ </prompt><command>cvs commit</command> <option>-m</option> "<replaceable>mensagem de log</replaceable>" <replaceable>arquivo-a-adicionar</replaceable></screen>
    </section>

    <section id="sn-cvs-cvscommands-admin">
      <title>Lidando com Arquivos Binários</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>arquivos binários</secondary>
      </indexterm>
      <para>
        A maioria dos arquivos mais comuns são arquivos de texto simples, mas
	algumas vezes arquivos binários também são arquivados. O programa
	<application>cvs</application> reconhece as extensões de arquivos mais
	comuns como por exemplo <filename>.png</filename> ou
	<filename>.jpg</filename>, então o <application>cvs</application>
	geralmente "faz a coisa certa".
      </para>

      <para>
        Quando uma cópia de arquivo é extraída do repositório, o
	<application>cvs</application>procura palavras-chave especiais nele como
	por exemplo "<computeroutput>$id:$</computeroutput>" e
	substitui a linha por um valor gerado, como o número de versão do
	arquivo.
      </para>

      <para>
        Esta substituição de palavras-chave geralmente corrompe arquivos
	binários, então ela deve ser desligada se o
	<application>cvs</application> não reconhece seu arquivo como binário.
	Para marcar seu arquivo como binário, deixando a substituição de
	palavras-chave desligada, use o comando:
      </para>
<screen width="60"><prompt>$ </prompt><command>cvs</command> <option>admin</option> <option>-kk</option> <replaceable>arquivo</replaceable></screen>
      <para>
        Note que o arquivo deve estar contido no repositório
	<abbrev>CVS</abbrev> antes do comando <option>admin</option> ser usado.
	Isto é certo porque a substituição de palavra-chave é feia quando o
	arquivo é extraído para o repositório local, e não quando o arquivo é
	aplicado ao repositório.
      </para>
      <tip>
        <title>Recuperando um arquivo binário</title>
        <para>
	  Se você colocar um arquivo binário no repositório e perceber que ele
	  está corrompido quando extraído, não entre em pânico. Simplesmente use
	  o comando <option>admin</option> como descrito acima, remova sua cópia
	  local de arquivo, e extraia-o de novo.
        </para>
      </tip>
    </section>

    <section id="sn-cvs-cvscommands-rm">
      <title>Removendo Arquivos</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>removendo arquivos</secondary>
      </indexterm>
      <para>
        Se um arquivo não é mais preciso em um módulo, use o comando
	<command>remove</command> para removê-lo de sua cópia local e então
	aplique <command>commit</command> a remoção no servidor. Meso que o
	arquivo seja removido da versão atual do módulo, uma cópia arquivada
	ainda é guardada no servidor para que possa ser recolocada a qualquer
	momento com o comando <command>add</command>.
      </para>
<screen><prompt>$ </prompt><command>cvs rm -f</command> <replaceable>arquivo-a-remover</replaceable></screen>
      <para>
        Depois de remover o arquivo, você precisa aplicar
	(<command>commit</command>) a remoção:
      </para>
<screen><prompt>$ </prompt><command>cvs commit</command> <option>-m</option>"<replaceable>mensagem de log</replaceable>" <replaceable>arquivo-a-remover</replaceable></screen>
      <para>
        Você pode usar wildcards (coringas) no comando <command>commit</command>
	para identificar os arquivos removidos. Eles devem ser especificados
	com um nome de arquivo exato.
      </para>

      <para>
        Se você precisa renomear um arquivo, é melhor você renomear o arquivo no
	servidor <application>CVS</application> para que o histórico de versões
	do arquivo seja preservado. Quando precisar renomear um arquivo, envie
	um e-mail para
        <ulink url="mailto:cvsdocs-administrator at fedora.redhat.com"><filename>cvsdocs-administrator at fedora.redhat.com</filename>
        </ulink> pedindo para o arquivo ser renomeado.
      </para>
    </section>

    <section id="sn-cvs-cvscommands-status">
      <title>Estado dos Arquivos</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>estado dos arquivos</secondary>
      </indexterm>
      <para>
        As vezes é necessário visualizar o <firstterm>estado</firstterm> de um
	arquivo em um módulo <application>CVS</application>. Para ver o estado
	de um arquivo, use o comando:
      </para>
<screen><prompt>$ </prompt><command>cvs status</command>  <replaceable>arquivo</replaceable></screen>
      <para>
        O estado de um arquivo de repositório pode ser:
      </para>

      <variablelist>
        <varlistentry>
          <term><computeroutput>Up-to-date</computeroutput> (Atualizado)</term>
          <listitem>
            <para>
	      Sua revisão do arquivo é idêntica a última versão do servidor
	      <application>CVS</application>.
            </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><computeroutput>Locally Modified</computeroutput> (Localmente Modificada)</term>
          <listitem>
            <para>
	      Você atualizou a última revisão do servidor, mas você modificou o
	      arquivo em seu sistema.
            </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><computeroutput>Locally Added</computeroutput> (Adicionado Localmente)</term>
          <listitem>
            <para>
	      Você adicionou o arquivo com o comando <command>cvs add</command>
	      mas não aplicou (commit) a adição do arquivo.
            </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><computeroutput>Locally Removed</computeroutput> (Removido Localmente)</term>
          <listitem>
            <para>
	      Você removeu o arquivo com o comando <command>cvs remove</command>
	      mas ainda não aplicou (commit) a remoção.
            </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><computeroutput>Needs Checkout</computeroutput> (Precisa de Extração)</term>
          <listitem>
            <para>
	      Uma novaversão do arquivo está no servidor e precisa ser obtida.
	      Apesar do estado incluir a palavra extrair, ele na verdade
	      significa que você precisa atualizar seus arquivos com o comando
	      <command>cvs update</command>.
            </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><computeroutput>Needs Patch</computeroutput> (Precisa de Patch)</term>
          <listitem>
            <para>
	      A revisão do seu repositório local precisa de um patch para a
	      última revisão do servidor. Use o comando <command>cvs
	      update</command> para resolver.
            </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><computeroutput>Needs Merge</computeroutput> (Precisa de Mesclagem)</term>
          <listitem>
            <para>
	      Uma nova revisão existe no servidor e sua versão local contém
	      modificações que ainda não foram aplicadas. Este estado geralmente
	      aparece quando você não tem a última revisão do arquivo e mesmo
	      assim o edita.
            </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><computeroutput>File had conflicts on merge</computeroutput> (Há conflitos no Arquivo durante a Mesclagem)</term>
          <listitem>
            <para>
	      Parecido com o <computeroutput>Needs Merge</computeroutput>,
	      exceto pelo fato de que você tentou usar o comando <command>cvs
	      update</command>. A diferença não pôde ter sido resolvida
	      automaticamente. Veja a <xref
	      linkend="sn-cvs-cvscommands-conflicts"></xref> para mais
	      informações em como resolver conflitos.
            </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><computeroutput>Unknown</computeroutput> (Desconhecido)</term>
          <listitem>
            <para>
	      O servidor <application>CVS</application> não sabe de nada sobre
	      este arquivo. Ele pode não ter sido adicionado ou removido
	      localmente e nunca pôde ter sido aplicado ao servidor. Este estado
	      geralmente ocorre para arquivos que você não deve aplicar (commit)
	      ao <application>CVS</application> como por exemplo um
	      <filename>generated-index.sgml</filenamee> ou arquivos que você
	      pode querer adicionar ao repositório mas não usou o comando
	      <command>cvs add</command>.
            </para>
          </listitem>
        </varlistentry>
      </variablelist>
    </section>

    <section id="sn-cvs-cvscommands-conflicts">
      <title>Resolvendo Conflitos</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>resolvendo conflitos</secondary>
      </indexterm>
      <para>
        Se você modifica um arquivo em uma mesma região que foi modificada e
	aplicada por outra pessoa primeiro, você provavelmente irá ver uma
	mensagem parecido com a abaixo quando aplicar o arquivo ou atualizar a
	sua cópia local do módulo:
      </para>
<screen>
<computeroutput>
RCS file: /cvs/docs/module-name/filename.sgml,v
retrieving revision 1.12
retrieving revision 1.13
Merging differences between 1.12 and 1.13 into filename.sgml
rcsmerge: warning: conflicts during merge
cvs server: conflicts found in filename.sgml
C filename.sgml
</computeroutput>
</screen>
      <para>
        Para resolver o conflito, abra o arquivo, procure por
        <computeroutput><<<<<<<</computeroutput>
	e determine que versão do conteúdo é correta. Por exemplo:
      </para>
<screen>
<computeroutput>
<para>
Uma sentença.
<<<<<<< filename.sgml
A sentença que foi mudada na cópia em trabalho.
=======
A mesma sentença que foi mudada diferentemente e aplicada.
>>>>>>> 1.13
</para>
</computeroutput>
</screen>
      <para>
        O conteúdo entre 
        <computeroutput><<<<<<<</computeroutput>,
        e <computeroutput>=======</computeroutput> é o conteúdo da sua cópia
	local. O conteúdo entre o <computeroutput>=======</computeroutput> e 
        <computeroutput>>>>>>>></computeroutput> é o
	conteúdo do servidor.
      </para>

      <para>
        Resolva o conflito editando a sua cópia, e aplicando (commit) o arquivo.
      </para>
    </section>

    <section id="sn-cvs-cvscommands-summary">
      <title>Sumário</title>
      <indexterm>
        <primary>cvs</primary>
        <secondary>comandos</secondary>
        <tertiary>sumário dos</tertiary>
      </indexterm>
      <para>
        Todos os comandos assumem que você esteja no diretório apropriado do
	módulo <application>CVS</application>.
      </para>
      <table frame="all" id="tb-cvs-basic-commands">
        <title>Comandos Básicos de 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><nome-do-módulo></replaceable></command>
      ou <command>cvs co <replaceable><nome-do-módulo></replaceable></command>
              </entry>
              <entry>Cria um diretório chamado
      <replaceable><nome-do-módulo></replaceable> com o conteúdo do módulo no
      diretório</entry>
            </row>
            <row>
              <entry><command>cvs co -d
	      <replaceable><diretório></replaceable> -r <replaceable><nome-da-árvore></replaceable><replaceable><nome-do-módulo></replaceable></command>
              </entry>
              <entry>Cria o diretório <replaceable><diretório></replaceable>
      com o conteúdo da árvore <replaceable><nome-da-árvore></replaceable>
      do módulo <replaceable><nome-do-módulo></replaceable> módulo.</entry>
            </row>
            <row>
              <entry><command>cvs update</command> ou <command>cvs up</command>
              </entry>
              <entry>Atualiza seus arquivos com os últimos arquivos do servidor
	      CVS.</entry>
            </row>
            <row>
              <entry><command>cvs add <replaceable><arquivo></replaceable></command>
              </entry>
              <entry>Adiciona o novo arquivo "arquivo" ao servidor CVS</entry>
            </row>
            <row>
              <entry><command>cvs commit -m "Minha mensagem"
        <replaceable><arquivo></replaceable></command>
              </entry>
              <entry>Atualiza o arquivo
	      <replaceable><arquivo></replaceable> com a última cópia de
	      seu computador</entry>
            </row>
            <row>
              <entry><command>cvs log <replaceable><arquivo></replaceable></command>
              </entry>
              <entry>Visualiza as mensagens de commit do arquivo <replaceable><arquivo></replaceable>
              </entry>
            </row>
            <row>
              <entry><command>cvs status <replaceable><arquivo></replaceable></command>
              </entry>
              <entry>Visualiza o estado do arquivo, como por exemplo
	      <computeroutput>Localmente Modificado</computeroutput>
              </entry>
            </row>
            <row>
              <entry><command>cvs status -v <replaceable><arquivo></replaceable></command>
              </entry>
              <entry>Visualiza as tags e árvores existentes para o arquivo</entry>
            </row>
            <row>
              <entry><command>cvs diff <replaceable><arquivo></replaceable></command>
              </entry>
              <entry>Mostra a diferença entre sua cópia local do arquivo e a
	      última versão do arquivo na árvore</entry>
            </row>
            <row>
              <entry><command>cvs diff -r1.1 -r1.2 <replaceable><arquivo></replaceable></command>
              </entry>
              <entry>Mostra a diferença do arquivo da versão 1.1 para a 1.2</entry>
            </row>
          </tbody>
        </tgroup>
      </table>
      <para>
        Para mais informações, leia o manual CVS disponível em seu sistema em
        <filename>/usr/share/doc/cvs-<replaceable><número-de-versão></replaceable>/cvs.ps</filename>
        (a versão do CVS pode variar) e visite a página do CVS disponível em
        <ulink url="http://www.cvshome.org/">http://www.cvshome.org/</ulink>.
      </para>
      <tip>
        <title>Dica</title>
        <para>
	  Como o <application>CVS</application> está usando o
	  <application>ssh</application> para conectar-se ao servidor
	  <application>CVS</application>, você será perguntando por uma senha
	  antes de executar a instrução <application>CVS</application>. Se você
	  quiser configurar o seu sistema para que você não tenha que digitar a
	  senha, veja a página
          <ulink url="http://redhat.com/docs/manuals/linux/RHL-9-Manual/custom-guide/s1-openssh-client-config.html"><citetitle>&RH;
          Linux 9 Customization Guide</citetitle> </ulink> para detalhes em como
	  usar o <command>ssh-agent</command>.
        </para>
      </tip>
    </section>
  </section>
</chapter>




More information about the Fedora-docs-commits mailing list