You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
5.4 KiB
76 lines
5.4 KiB
<chapter id="cvs">
|
|
<title>Usar o &CVS;</title>
|
|
<indexterm zone="cvs"><primary>CVS</primary></indexterm>
|
|
<indexterm zone="cvs"><primary>controlo de revisões (versões)</primary></indexterm>
|
|
|
|
<sect1 id="cvs-basics">
|
|
<title>Bases do &CVS;</title>
|
|
|
|
<para>O &CVS; é o sistema de controlo de versões que muitos dos projectos 'open-source' - incluindo o &kde; — usam. Ele grava todo o código num sítio local, chamado de <emphasis>repositório</emphasis>. A partir do repositório, os programadores poderão obter uma versão actualizada do projecto (ou partes dele) em qualquer altura. Em contraste com outros sistemas de controlo de versões, não é necessário <emphasis>bloquear</emphasis> os ficheiros em que uma pessoa deseja trabalhar. Como tal, o desenvolvimento poderá ser altamente paralelizado. </para>
|
|
|
|
<para>Sempre que um programador terminar uma tarefa, ele <emphasis>envia</emphasis> o seu código (acompanhado de uma mensagem de registo). O &CVS; tem a seu cargo a junção das alterações feitas pelos vários programadores. Poderá acontecer, obviamente, que os programadores trabalhem no mesmo pedaço de código, o que irá resultar num conjunto de alterações em conflito (na prática, isto ocorre raramente, e normalmente é sintoma de falta de comunicação). Nesse caso, o &CVS; rejeita um envio; só após todos os conflitos terem sido resolvidos é que um ficheiro poderá ser enviado. </para>
|
|
|
|
<para>Até agora, isto foi uma descrição das funcionalidades básicas do &CVS; com que uma pessoa tem de lidar normalmente. Mas o &CVS; oferece bastante mais: poder-se-ão manter várias ramificações de um projecto (⪚ o &kde; 1.1.2 e o &kde; 2 eram ramificações da árvore de desenvolvimento do &kde;), reunir as modificações de uma ramificação noutra, pedir as diferenças entre versões, o histórico de versões de ficheiros &etc; </para>
|
|
|
|
<para>O &CVS; está implementado como um sistema cliente-servidor. Como utilizador, toda a comunicação com o repositório é feita através do programa da linha de comandos &cvs;. Está disponível uma interface de nível mais elevado através das interfaces existentes, como o &cervisia; (<ulink url="http://cervisia.sf.net"></ulink>) ou o <application>TkCVS</application> (<ulink url="http://tkcvs.sf.net"></ulink>). No &tdevelop;, só uma pequena parte da funcionalidade do &cvs; é relevante para o seu trabalho diário e que poderá ser usada directamente. </para>
|
|
|
|
<para>Assume-se um conhecimento básico da utilização do &CVS;. Em particular, deverá saber como obter um dado projecto do seu repositório. Recomenda-se o livro <quote>Open Source Development With &CVS;</quote> de Karl Fogel, o qual está disponível de forma livre (excepto os capítulos não-técnicos). Veja em <ulink url="http://cvsbook.red-bean.com/cvsbook.html"></ulink>. </para>
|
|
|
|
</sect1> <!-- cvs-basics -->
|
|
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
|
|
<sect1 id="cvs-commands">
|
|
<title>Comandos do &CVS; no &tdevelop;</title>
|
|
|
|
<para>Na árvore de ficheiros, estão disponíveis os seguintes itens do menu de contexto: </para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>Adicionar ao Repositório</term>
|
|
<listitem>
|
|
<para>Prepara o ficheiro marcado para ser adicionado ao repositório. O ficheiro é transferido para o mesmo quando o enviar (ou a pasta que o contém) da próxima vez. </para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Remover do Repositório</term>
|
|
<listitem>
|
|
<para>Prepara um ficheiro para ser removido do repositório. Isto remove também o ficheiro do sistema de ficheiros local, como tal use esta funcionalidade com cuidado! </para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Actualizar</term>
|
|
<listitem>
|
|
<para>Execute o <command>cvs update</command> para reunir as modificações dos outros utilizadores na sua pasta de trabalho. Quando usar este item do menu sobre uma pasta, a actualização irá acontecer normalmente de forma recursiva, excepto se tiver desactivado essa possibilidade no ficheiro de configuração <filename>.cvsrc</filename>. </para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Enviar</term>
|
|
<listitem>
|
|
<para>Executa o <command>cvs commit</command> para enviar as modificações locais para o repositório. Lembre-se que deverá fazer uma actualização local antes de fazer isto. Caso contrário, quando outro utilizador tiver enviado as suas modificações antes, o &CVS; poder-lhe-á mostrar uma mensagem de erro. </para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>Todos estes comandos são invocados como sub-processos pelo &tdevelop; sem quaisquer outras opções da linha de comandos ou variáveis de ambiente. Isto poderá ser um problema quando a ligação ao servidor de &CVS; for através de uma ligação de &ssh; e você tiver de indicar a sua senha, sempre que envia ou recebe as actualizações. Isto é, por exemplo, necessário quando o seu projecto está alojado no <filename>sourceforge.net</filename>. As soluções alternativas para este problema estão descritas na FAQ do &CVS;/SSH, que poderá encontrar na documentação do SourceForge. </para>
|
|
|
|
</sect1> <!-- cvs-basics -->
|
|
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
|
|
<sect1 id="cvs-behind">
|
|
<title>Nos Bastidores</title>
|
|
|
|
<sect2 id="cvs-behind-workdir">
|
|
<title>O Que o &CVS; Grava na Pasta de Trabalho</title>
|
|
|
|
<para>(... ainda não escrito ...) </para>
|
|
</sect2> <!-- cvs-behind-workdir -->
|
|
|
|
</sect1> <!-- cvs-behind -->
|
|
|
|
</chapter> <!-- cvs -->
|