[svnbook-pt-br commit] r73 - trunk/book
codesite-noreply at google.com
codesite-noreply at google.com
Mon Mar 24 10:37:53 CDT 2008
Author: the.mente
Date: Mon Mar 24 08:37:44 2008
New Revision: 73
Modified:
trunk/book/ch04-branching-and-merging.xml
Log:
Tradução da subseção - Creating a branch
issue 35
Modified: trunk/book/ch04-branching-and-merging.xml
==============================================================================
--- trunk/book/ch04-branching-and-merging.xml (original)
+++ trunk/book/ch04-branching-and-merging.xml Mon Mar 24 08:37:44 2008
@@ -84,10 +84,11 @@
<xref linkend="svn.basic"/>. Lembre-se que você e Sally estão
compartilhando um repositório que contem dois projetos,
<filename>paint</filename> e <filename>calc</filename>.
- Note que em <xref linkend="svn.branchmerge.using.dia-1"/>,entretanto,
- cada diretório de projeto contem subdiretorios chamados
- <filename>trunk</filename> e <filename>branches</filename>.
- O motivo para isso logo ficará mais claro.</para>
+ Note que em <xref linkend="svn.branchmerge.using.dia-1"/>,
+ entretanto, cada diretório de projeto contem subdiretorios
+ chamados <filename>trunk</filename>
+ e <filename>branches</filename>. O motivo para isso logo ficará
+ mais claro.</para>
<figure id="svn.branchmerge.using.dia-1">
<title>Layout Inical do Repositorio</title>
@@ -100,17 +101,18 @@
Todos os arquivos deste projeto estão nesse diretório ao invés de
estarem no <filename>/calc</filename>, porque a sua equipe decidiu
que <filename>/calc/trunk</filename> é onde a
- <quote>Linha Principal</quote> de desenvolvimento vai ficar.</para>
+ <quote>Linha Principal</quote> de desenvolvimento vai ficar.
+ </para>
<para>Digamos que você recebeu a tarefa de implementar uma grande
funcionalidade nova no projeto. Isso vai requerer muito tempo para
- escrever, e vai afetar todos os arquivos do projeto. O problema aqui
- é que você não quer interferir no trabalho de Sally, que esta
+ escrever, e vai afetar todos os arquivos do projeto. O problema
+ aqui é que você não quer interferir no trabalho de Sally, que esta
corrigindo pequenos bugs aqui e ali. Ela depende de que a ultima
versão do projeto (em <filename>/calc/trunk</filename>) esteja
sempre disponível. Se você começar a fazer commits de suas
- modificações bit-a-bit, com certeza você vai dificultar o trabalho de
- Sally.</para>
+ modificações bit-a-bit, com certeza você vai dificultar o trabalho
+ de Sally.</para>
<para>Um estratégia é cavar um buraco: você e Sally podem para de
compartilhar informações por uma semana ou duas.Isto é, começar
@@ -120,22 +122,23 @@
A maioria das pessoas gostam de salvar seu trabalho no repositorio
com frequencia, caso algo ruim aconteça por acidente à cópia de
trabalho. Segundo, não é nada flexível. Se você faz seu trabalho
- em computadores diferentes (talves você tenha uma cópia de trabalho
- de <filename>/calc/trunk</filename> em duas máquinas diferentes),
- você terá que, manualmente, copiar suas alterações de uma máquina
- para outra, ou simplesmente, realizar todo o trabalho em um único
- computador. Por esse mesmo método, é dificil compartilhar suas
- constantes modificações com qualquer pessoa. Uma <quote>boa
- prática</quote> comum em desenvolvimento de software é permitir
- que outros envolvidos revisem seu trabalho enquanto sendo realizado.
+ em computadores diferentes (talves você tenha uma cópia de
+ trabalho de <filename>/calc/trunk</filename> em duas máquinas
+ diferentes), você terá que, manualmente, copiar suas alterações
+ de uma máquina para outra, ou simplesmente, realizar todo o
+ trabalho em um único computador. Por esse mesmo método, é dificil
+ compartilhar suas constantes modificações com qualquer pessoa. Uma
+ <quote>boa prática</quote> comum em desenvolvimento de software é
+ permitir que outros envolvidos revisem seu trabalho enquanto sendo
+ realizado.
Se ninguém verificar seus commits intermediários, você perde um
potêncial feedback. E por fim, quando você terminar todas as
modificações, você pode achar muito dificil de fundir seu trabalho
- com o resto da linha principal de desenvolvimento da empresa. Sally
- (ou outros) podem ter realizado muitas outras mudanças no repositório
- que podem ser difíceis de incorporar com sua cópia de trabalho—
- especialmente se você rodar um <command>svn update</command> depois
- de semanas trabalhando sozinho.</para>
+ com o resto da linha principal de desenvolvimento da empresa.
+ Sally (ou outros) podem ter realizado muitas outras mudanças no
+ repositório que podem ser difíceis de incorporar com sua cópia de
+ trabalho— especialmente se você rodar um <command>svn
+ update</command> depois de semanas trabalhando sozinho.</para>
<para>A melhor solução é criar seu próprio ramo, ou linha de
desenvolvimento, no repositório. Isso lhe permite salvar seu
@@ -146,28 +149,26 @@
<!-- =============================================================== -->
<sect2 id="svn.branchmerge.using.create">
- <title>Creating a Branch</title>
+ <title>Criando um Ramo</title>
- <para>Creating a branch is very simple—you make a copy of
- the project in the repository using the <command>svn
- copy</command> command. Subversion is not only able to copy
- single files, but whole directories as well. In this case,
- you want to make a copy of the
- <filename>/calc/trunk</filename> directory. Where should the
- new copy live? Wherever you wish—it's a matter of
- project policy. Let's say that your team has a policy of
- creating branches in the <filename>/calc/branches</filename>
- area of the repository, and you want to name your branch
- <literal>my-calc-branch</literal>. You'll want to create a
- new directory,
- <filename>/calc/branches/my-calc-branch</filename>, which
- begins its life as a copy of
- <filename>/calc/trunk</filename>.</para>
-
- <para>There are two different ways to make a copy. We'll
- demonstrate the messy way first, just to make the concept
- clear. To begin, check out a working copy of the project's
- root directory, <filename>/calc</filename>:</para>
+ <para>Criar um ramo é realmente simples— você faz uma cópia
+ do projeto no repositório usando o comando<command>svn
+ copy</command>. O Subversion copia não somente arquivos mas
+ também diretórios completos. Neste caso, você quer fazer a cópia
+ do diretório <filename>/calc/trunk</filename>. Onde deve ficar a
+ nova cópia? Onde você quiser— isso depende da "política"
+ do projeto. Digamos que sua equipe tem a política de criar novos
+ ramos na área <filename>/calc/branches</filename> do
+ repositório, e você quer chamar o seu ramo de
+ <literal>my-calc-branch</literal>. Você vai querer criar um novo
+ diretório, <filename>/calc/branches/my-calc-branch</filename>,
+ que inicia sua vida como cópia de
+ <filename>/calc/trunk</filename>.</para>
+
+ <para>Há duas maneiras diferentes de fazer uma cópia. Vamos
+ mostrar primeiro a maneira complicada, apenas para deixar claro
+ o conceito. Para começar, faça um checkout do diretório raiz do
+ projeto, <filename>/calc</filename>:</para>
<screen>
$ svn checkout http://svn.example.com/repos/calc bigwc
@@ -179,9 +180,9 @@
Checked out revision 340.
</screen>
- <para>Making a copy is now simply a matter of passing two
- working-copy paths to the <command>svn copy</command>
- command:</para>
+ <para>Agora para fazer uma cópia basta passar dois caminhos
+ de cópia de trabalho ao comando <command>svn
+ copy</command>:</para>
<screen>
$ cd bigwc
@@ -190,98 +191,102 @@
A + branches/my-calc-branch
</screen>
- <para>In this case, the <command>svn copy</command> command
- recursively copies the <filename>trunk</filename> working
- directory to a new working directory,
- <filename>branches/my-calc-branch</filename>. As you can see
- from the <command>svn status</command> command, the new
- directory is now scheduled for addition to the repository.
- But also notice the <quote>+</quote> sign next to the letter
- A. This indicates that the scheduled addition is a
- <emphasis>copy</emphasis> of something, not something new.
- When you commit your changes, Subversion will create
- <filename>/calc/branches/my-calc-branch</filename> in the
- repository by copying <filename>/calc/trunk</filename>, rather
- than resending all of the working copy data over the
- network:</para>
+ <para>Neste caso, o comando <command>svn copy</command> faz uma
+ cópia recursiva do diretório <filename>trunk</filename> para um
+ novo diretório de trabalho,
+ <filename>branches/my-calc-branch</filename>. Como você pode ver
+ pelo comando <command>svn status</command>, o novo diretório
+ está agendado para ser adicionado ao repositório. Note também
+ o sinal <quote>+</quote> próximo à letra A. Isso indica o item
+ adicionado é uma <emphasis>cópia</emphasis> de algo e não um
+ item novo. Quando você realizar o Commit das modificações, o
+ Subversion vai criar o diretorio
+ <filename>/calc/branches/my-calc-branch</filename> no repositóio
+ copiando <filename>/calc/trunk</filename>, ao invés de reenviar
+ todos os dados da cópia de trabalho pela rede:</para>
<screen>
-$ svn commit -m "Creating a private branch of /calc/trunk."
+$ svn commit -m "Criando um ramo do diretório /calc/trunk."
Adding branches/my-calc-branch
Committed revision 341.
</screen>
- <para>And now here's the easier method of creating a branch,
- which we should have told you about in the first
- place: <command>svn copy</command> is able to operate directly
- on two URLs.</para>
+ <para>E aqui está o método mais fácil de criar um ramo, o qual nós
+ deveriamos ter lhe mostrado desde o início: o comando
+ <command>svn copy</command> é capaz de copiar diretamente duas
+ URLs.</para>
<screen>
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/my-calc-branch \
- -m "Creating a private branch of /calc/trunk."
+ -m "Criando um ramo do diretório /calc/trunk."
Committed revision 341.
</screen>
- <para>From the repository's point of view, there's really no
- difference between these two methods. Both procedures create
- a new directory in revision 341, and the new directory is a
- copy of <filename>/calc/trunk</filename>. This is shown in
- <xref linkend="svn.branchmerge.using.create.dia-1"/>. Notice
- that the second method, however, performs an
- <emphasis>immediate</emphasis> commit in constant time.
+ <para>Do ponto de vista do diretório, não há diferença entre estes
+ dois métodos. Ambos os processos criam um novo diretório na
+ revisão 341, e o novo diretório é uma cópia de
+ <filename>/calc/trunk</filename>. Isso é mostrado em
+ <xref linkend="svn.branchmerge.using.create.dia-1"/>. Note que o
+ segundo método, entretanto, faz um commit
+ <emphasis>imediato</emphasis> em tempo constante.
<footnote>
- <para>Subversion does not support copying between different
- repositories. When using URLs with <command>svn
- copy</command> or <command>svn move</command>, you can only
- copy items within the same repository.</para>
+ <para>O Subversion não suporta a cópia entre repositórios
+ distintos. Quando usando URLs com os comandos
+ <command>svn copy</command> ou <command>svn move</command>,
+ você pode apenas copiar itens dentro de um mesmo repositório.
+ </para>
</footnote>
- It's an easier procedure, because it doesn't require you to
- check out a large portion of the repository. In fact, this
- technique doesn't even require you to have a working copy at
- all. This is the way most users create branches.</para>
+ Este é um procedimento mais fácil, uma vez que você não precisa
+ fazer o checkout de uma grande parte do repositório. Na verdade,
+ para usar esta técnica você não precisa se quer ter uma cópia de
+ trabalho. Esta é a maneira que a maioria dos usuários criam
+ ramos.</para>
<figure id="svn.branchmerge.using.create.dia-1">
- <title>Repository with new copy</title>
+ <title>Repositório com uma nova cópia</title>
<graphic fileref="images/ch04dia3.png"/>
</figure>
<sidebar>
- <title>Cheap Copies</title>
+ <title>Cópias Leves</title>
- <para>Subversion's repository has a special design. When you
- copy a directory, you don't need to worry about the
- repository growing huge—Subversion doesn't actually
- duplicate any data. Instead, it creates a new directory
- entry that points to an <emphasis>existing</emphasis> tree.
- If you're a Unix user, this is the same concept as a
- hard-link. As further changes are made to files and
- directories beneath the copied directory, Subversion
- continues to employ this hard-link concept where it can. It
- only duplicates data when it is necessary to disambiguate
- different versions of objects.</para>
-
- <para>This is why you'll often hear Subversion users talk
- about <quote>cheap copies</quote>. It doesn't matter how
- large the directory is—it takes a very tiny, constant
- amount of time to make a copy of it. In fact, this feature
- is the basis of how commits work in Subversion: each
- revision is a <quote>cheap copy</quote> of the previous
- revision, with a few items lazily changed within. (To read
- more about this, visit Subversion's website and read about
- the <quote>bubble up</quote> method in Subversion's design
- documents.)</para>
-
- <para>Of course, these internal mechanics of copying and
- sharing data are hidden from the user, who simply sees
- copies of trees. The main point here is that copies are
- cheap, both in time and space. If you create a branch
- entirely within the repository (by running <command>svn copy
- URL1 URL2</command>), it's a quick, constant-time operation.
- Make branches as often as you want.</para>
+ <para>O repositório do Subversion tem um design especial. Quando
+ você copia um diretório, você não precisa se preocupar com o
+ repositório ficando gigante—O Subversion, na realidade,
+ não duplica dados. Ao invés disso, ele cria uma nova entrada
+ de diretório que aponta para uma outra árvore de diretório
+ <emphasis>já existente</emphasis>. Caso você seja um usuário
+ Unix, esse é o mesmo conceito do hard-link. Enquanto as
+ modificações são feitas em pastas e arquivos no diretório
+ copiado, o Subversion continua aplicando esse conceito de
+ hard-link enquanto for possivel. Os dados somente serão
+ duplicados quando for necessário tira ambiguidade de
+ diferentes versões de um objeto.</para>
+
+ <para>É por isso que você quase não vai ouvir os usuários do
+ Subversion reclamando de <quote>Cópias Leves</quote>
+ (<foreignphrase>cheap copies</foreignphrase>). Não importa o
+ quão grande é o diretório— a cópia sempre sera feita
+ em um pequeno e constante espaço de tempo. Na verdade, essa
+ funcionalidade é a base do funcionamento do commit no
+ Subversion: cada revisão é uma <quote>cópia leve</quote> da
+ revisão anterior, com algumas ligeiras modificações em alguns
+ itens.(para ler mais sobre esse assunto, visite o website do
+ Subversion e leia o método <quote>bubble up</quote> nos
+ documentos de design do Subversion.)</para>
+
+ <para>Claro que estes mecanismos internos de copiar e
+ compartilhar dados estão escondidos do usuário, que vê apenas
+ copias das arvores de arquivos. O ponto principal aqui é que
+ as cópias são leves, tanto em tempo quanto em tamanho. Se você
+ criar um ramo inteiro dentro do repositório (usando o comando
+ <command>svn copy URL1 URL2</command>), será uma operação
+ rápida, e de tempo constante. Crie ramos sempre que quiser.
+ </para>
</sidebar>
</sect2>
More information about the svn-pt_br
mailing list