Differences between revisions 1 and 4 (spanning 3 versions)
Revision 1 as of 2008-01-14 23:15:17
Size: 6235
Comment:
Revision 4 as of 2008-01-15 00:50:22
Size: 6879
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Mercurial's decentralized development model can be confusing to new users. This page attempts to illustrate some of the basic concepts.
See the ["Tutorial"] for step-by-step instructions.
O modelo de desenvolvimento descentralizado do Mercurial pode confundir os novos usuários. Esta página tenta ilustrar alguns conceitos básicos.
Veja o ["Tutorial"] para instruções passo a passo.
Line 6: Line 6:
== What's in a Repository ==

Mercurial [:Repository:repositories] contain a [:WorkingDirectory:working directory] coupled with a store:
== O que é um Repositório ==

Os [:Repository:repositórios] do Mercurial contém um [:WorkingDirectory:diretório de trabalho] acoplado com um store:
Line 34: Line 34:
The store contains the '''complete''' history of the project. Unlike traditional [:SCM:SCMs], where there's only one central copy of this history,
every working directory is paired with a private copy of the history. This allows development to go on in parallel.

The working directory contains a copy of the project's files at a given point in time (eg rev 2), ready for editing. Because [:Tag:tags] and ignored files are revision-controlled, they are also included.

== Committing Changes ==

When you [:Commit:commit], the state of the working directory relative to its [:Parent:parents] is recorded as a new [:Revision:revision]:
O store contém o histórico '''completo''' do projeto. Diferente dos [:SCM:SCMs] tradicionais, onde há apenas uma cópia central deste histórico,
todo diretório de trabalho é acompanhado de uma cópia privada do histórico. Isto permite que o desenvolvimento ocorra em paralelo.

O diretório de trabalho contém uma cópia dos arquivos do projeto em um determinado ponto do tempo pronta para edição (por exemplo, rev 2). Devido as [:Tag:tags] e os arquivos ignorados serem serem controlados pela revisão, eles também são incluídos.

== Salvando (Committing) Modificações ==

Quando você submete suas modificações ([:Commit:commit]), o estado do diretório de trabalho em relação aos seus [:Parent:pais] é gravado como uma nova [:Revision:revisão]:
Line 70: Line 70:
Note here that revision 4 is a '''branch''' of revision 2, which was the revision in the working directory. Now revision 4 is the working directory's '''parent'''.

== Revisions, Changesets, Heads, and Tip ==

Mercurial groups related changes to multiple files into single atomic [:ChangeSet:changesets], which are revisions of the whole project.
These each get a sequential [:RevisionNumber:revision number]. Because Mercurial allows distributed parallel development, these revision numbers may disagree between users. So Mercurial also assigns each revision a global [:ChangeSetID:changeset ID]. Changeset IDs are 40-digit hexadecimal numbers, but they can be abbreviated to any unambiguous prefix, like "e38487".
Note que a revisão 4 é um '''ramo''' (branch) da revisão, a qual era era a revisão no diretório de trabalho. Agora, a revisão 4 é o '''pai''' do diretório de trabalho.

== Revisões, Changesets, Heads, and Tip ==

O Mercurial agrupa as modificações relacionadas a múltiplos arquivos um único conjunto atômico de modificações ([:ChangeSet:changesets]), as quais são as revisões para o projeto como um todo.
Cada uma destas modificações recebe um [:RevisionNumber:número de revisão] seqüencial.

Devido ao Mercurial permitir o desenvolvimento distribuído em paralelo, estes números de revisão podem ser diferentes entre os usuários. Assim, o Mercurial também atribui para cada revisão um identificador global de modificações ([:ChangeSetID:changeset ID]). Os ''Changeset IDs'' são números hexadecimais de 40 digitos, mas podem ser abreviados para um prefixo qualquer que não seja ambíguo, como "e38487".
Line 91: Line 93:
Branches and [:Merge:merges] in the revision history can occur at any point. Each unmerged branch creates a new [:Head:head] of the revision history.
Here, revisions 5 and 6 are heads. Mercurial considers revision 6 to be the [:Tip:tip] of the repository, the head with the highest revision number.

== Cloning, Making Changes, Merging, and Pulling ==

Let's start with a user Alice, who has a store that looks like:
Ramos (branches) e fusões ([:Merge:merges]) no histórico das revisões podem ocorrer em qualquer ponto. Cada ramo que não está unido cria uma nova cabeça ([:Head:head]) do histórico de revisões.
Aqui, as revisões 5 e 6 são cabeças. O Mercurial considera a revisão 6 como sendo a extremidade ([:Tip:tip]) do repositório, a cabeça com o maior número de revisão.

== Clonando, Modificando, Unindo e Obtendo ==

Vamos iniciar com a usuária Alice, a qual tem um store que se parece com este:
Line 107: Line 109:
Bob [:Clone:clones] this repo, and ends up with a complete copy of Alice's store (though his working directory is independent!): O Bob [:Clone:clona] este repositório e obtém uma cópia completa do store da Alice (apesar do seu diretório de trabalho ser independente!):
Line 118: Line 120:
Bob then [:Commit:commits] a couple changes: O Bob então [:Commit:submete] algumas modificações:
Line 131: Line 133:
Alice then makes her own change in parallel: A Alice realiza suas modificações em paralelo:
Line 143: Line 145:
Bob then [:Pull:pulls] Alice's repo to synchronize. This copies all of Alice's changes into Bob's repo: O Bob então [:Pull:puxa] as modificações da Alice para sincronizar seu repositório com o dela. Isto copia todas as modificações da Alice para o repositório do Bob:
Line 158: Line 160:
Because Alice's '''g''' is the newest head in Bob's repository, it's now the '''tip'''. Bob then does a [:Merge:merge] which combines the last change he was working on ('''f''') with the tip, commits the result, and ends up with: Devido a revisão '''g''' da Alice ser mais nova que as revisões do repositório do Bob, esta agora passa a ser a extremidade ('''tip'''). O Bob então faz um [:Merge:merge] o qual combina as últimas modificações nas quais que ele estava trabalhando em ('''f''') com o tip, submete o resultadoe termina com:
Line 176: Line 178:
Now if Alice '''pulls''' from Bob, she will get Bob's changes e, f, and h, and they will be fully synchronized: Agora, Alice '''puxa''' de Bob suas modificações e obtém e, f e h, e esta totalmente sincronizada:

O modelo de desenvolvimento descentralizado do Mercurial pode confundir os novos usuários. Esta página tenta ilustrar alguns conceitos básicos. Veja o ["Tutorial"] para instruções passo a passo.

TableOfContents

O que é um Repositório

Os [:Repository:repositórios] do Mercurial contém um [:WorkingDirectory:diretório de trabalho] acoplado com um store:

O store contém o histórico completo do projeto. Diferente dos [:SCM:SCMs] tradicionais, onde há apenas uma cópia central deste histórico, todo diretório de trabalho é acompanhado de uma cópia privada do histórico. Isto permite que o desenvolvimento ocorra em paralelo.

O diretório de trabalho contém uma cópia dos arquivos do projeto em um determinado ponto do tempo pronta para edição (por exemplo, rev 2). Devido as [:Tag:tags] e os arquivos ignorados serem serem controlados pela revisão, eles também são incluídos.

Salvando (Committing) Modificações

Quando você submete suas modificações ([:Commit:commit]), o estado do diretório de trabalho em relação aos seus [:Parent:pais] é gravado como uma nova [:Revision:revisão]:

Note que a revisão 4 é um ramo (branch) da revisão, a qual era era a revisão no diretório de trabalho. Agora, a revisão 4 é o pai do diretório de trabalho.

Revisões, Changesets, Heads, and Tip

O Mercurial agrupa as modificações relacionadas a múltiplos arquivos um único conjunto atômico de modificações ([:ChangeSet:changesets]), as quais são as revisões para o projeto como um todo. Cada uma destas modificações recebe um [:RevisionNumber:número de revisão] seqüencial.

Devido ao Mercurial permitir o desenvolvimento distribuído em paralelo, estes números de revisão podem ser diferentes entre os usuários. Assim, o Mercurial também atribui para cada revisão um identificador global de modificações ([:ChangeSetID:changeset ID]). Os Changeset IDs são números hexadecimais de 40 digitos, mas podem ser abreviados para um prefixo qualquer que não seja ambíguo, como "e38487".

Ramos (branches) e fusões ([:Merge:merges]) no histórico das revisões podem ocorrer em qualquer ponto. Cada ramo que não está unido cria uma nova cabeça ([:Head:head]) do histórico de revisões. Aqui, as revisões 5 e 6 são cabeças. O Mercurial considera a revisão 6 como sendo a extremidade ([:Tip:tip]) do repositório, a cabeça com o maior número de revisão.

Clonando, Modificando, Unindo e Obtendo

Vamos iniciar com a usuária Alice, a qual tem um store que se parece com este:

O Bob [:Clone:clona] este repositório e obtém uma cópia completa do store da Alice (apesar do seu diretório de trabalho ser independente!):

O Bob então [:Commit:submete] algumas modificações:

A Alice realiza suas modificações em paralelo:

O Bob então [:Pull:puxa] as modificações da Alice para sincronizar seu repositório com o dela. Isto copia todas as modificações da Alice para o repositório do Bob:

Devido a revisão g da Alice ser mais nova que as revisões do repositório do Bob, esta agora passa a ser a extremidade (tip). O Bob então faz um [:Merge:merge] o qual combina as últimas modificações nas quais que ele estava trabalhando em (f) com o tip, submete o resultadoe termina com:

Agora, Alice puxa de Bob suas modificações e obtém e, f e h, e estará totalmente sincronizada:

A Decentralized System

Mercurial is a completely decentralized system, and thus has no internal notion of a central repository. Thus users are free to define their own topologies for sharing changes (see CommunicatingChanges):

For a hands-on introduction to using Mercurial, see the ["Tutorial"].

BrazilianPortugueseUnderstandingMercurial (last edited 2013-04-04 22:31:53 by LeonardoPostacchini)