Differences between revisions 8 and 9
Revision 8 as of 2008-01-15 10:07:32
Size: 7104
Editor: abuehl
Comment: link
Revision 9 as of 2008-01-15 13:37:40
Size: 7125
Comment: Corrections in the grammar.
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
Os [:Repository:repositórios] do Mercurial contém um [:WorkingDirectory:diretório de trabalho] acoplado com um store: Os [:Repository:repositórios] do Mercurial contêm um [:WorkingDirectory:diretório de trabalho] acoplado:
Line 38: Line 38:
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, O repositório contém o histórico '''completo''' do projeto. Diferente dos [:SCM:SCMs] tradicionais, onde há apenas uma cópia central deste histórico,
Line 41: Line 41:
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. 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 às [:Tag:tags] e os arquivos ignorados serem serem controlados pela revisão, eles também são incluídos.
Line 74: Line 74:
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. Note que a revisão 4 é um '''ramo''' (branch) da revisão, a qual era a revisão no diretório de trabalho. Agora, a revisão 4 é o '''pai''' do diretório de trabalho.
Line 81: Line 81:
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". 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 dígitos, mas podem ser abreviados para um prefixo qualquer que não seja ambíguo, como "e38487".
Line 102: Line 102:
Vamos iniciar com a usuária Alice, a qual tem um store que se parece com este: Vamos iniciar com a usuária Alice, a qual tem um repositório que se parece com este:
Line 113: Line 113:
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 [:Clone:clona] este repositório da Alice e obtém uma cópia completa do mesmo (apesar do seu diretório de trabalho ser independente!):
Line 164: Line 164:
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: Devido à 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 ele estava trabalhando em ('''f''') com o tip, submete o resultado e termina com:
Line 223: Line 223:
----
CategoryTutorial

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.

(This page in English: UnderstandingMercurial)

TableOfContents

O que é um Repositório

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

O repositório 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 às [: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 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 dígitos, 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 repositório que se parece com este:

O Bob [:Clone:clona] este repositório da Alice e obtém uma cópia completa do mesmo (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 à 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 ele estava trabalhando em (f) com o tip, submete o resultado e termina com:

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

Um Sistema Descentralizado

O Mercurial é um sistema completamente descentralizado e portanto não tem nenhuma noção interna de repositório central. Assim, os usuários são livres para definir suas próprias topologias para compartilhar as modificações (veja CommunicatingChanges):

Para uma introdução prática de como utilizar o Mercurial, veja o ["Tutorial"].


CategoryTutorial

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