Size: 11323
Comment:
|
Size: 6875
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
## still a draft ##== Tutorial - examining repository history == |
|
Line 10: | Line 7: |
##At this point, we have followed TutorialClone to clone a repository; our local copy is called {{{my-hello}}}. Neste ponto, nós já acompanhamos ../BrazilianPortugueseTutorialClone para clonar um repositório; nossa cópia local é chamada {{{my-hello}}}. |
Neste ponto, nós já acompanhamos ../BrazilianPortugueseTutorialClone para fazer um clone de um repositório; nossa cópia local é chamada {{{my-hello}}}. |
Line 13: | Line 9: |
##Let's take a look at the history of this [:Repository:repository]. To do this, we use the {{{log}}} command. This prints a summary of every event that has occurred in the repository, going backwards in time from the most recent. Vamos examinar o histórico deste [:Repository:repositório]. Para fazer isso, usamos o comando {{{log}}} . Isso imprime um resumo de cada evento que ocorreu no repositório, do mais recente para o mais antigo. |
Vamos examinar o histórico deste [:Repository:repositório]. Para isso, usamos o comando {{{log}}} , que imprime um resumo de cada evento que ocorreu no repositório, do mais recente para o mais antigo. |
Line 31: | Line 26: |
##These lines of output bear some describing. | |
Line 34: | Line 28: |
## * Each paragraph describes a particular [:ChangeSet:changeset]. A changeset is a modification of one or more files, grouped together into a logical unit. ## * In our case above, we can see that the repository's history consists of two changesets. ## * {{{changeset}}} identifies a changeset. ## * The first number before the colon is a [:RevisionNumber:revision number]; it is a local short-hand way of identifying the changeset. It is only valid within this repository. ## * The hexadecimal string after the colon is a short-form [:ChangeSetID:changeset ID]; it identifies the changeset, and is the same in all repositories that contain this changeset. If you are ever discussing a changeset with someone else, use the changeset ID, not the revision number. ## * {{{tag}}} is a [:Tag:tag], an arbitrary symbolic name for a changeset. ## * You can assign one or more tags to any changeset. Actually, not that many changeset will have tags associated with them, so the {{{tag}}} line will seldom be present. ## * The special tag named {{{tip}}} always identifies the [:Tip:tip], which is the most recent changeset in the repository. If you create another changeset (and we will, soon), the {{{tip}}} tag will be removed from the most recent changeset and will be added to the new changeset. ## * {{{user}}} identifies the person who created the changeset. This is a free-form string; it usually contains an email address, and sometimes a person's name, too. ## * {{{date}}} describes when the changeset was created. These dates are printed in the local time zone the creator of the changeset was in. ## * {{{summary}}} gives the first line of the description of the changeset. This was entered by the creator of the changeset at the time they created it, to help themselves and others understand the purpose of the changeset (see also ["ChangeSetComments"]). ## * {{{parent}}} identifies the [:Parent:parent] changesets, in case there are more than one, which happens when you [:Merge:merge] changes from several repositories. ## * Most of the times there is only one parent, which is the one changeset older than itself. This is the case in our example above. |
|
Line 48: | Line 29: |
* Em nosso caso acima, podemos ver que o istórico do repositório consiste de dois changesets. * {{{changeset}}} identifica um changeset. |
* Em nosso caso acima, podemos ver que o histórico do repositório consiste de dois changesets. * {{{changeset}}} identifica o changeset. |
Line 51: | Line 32: |
* O texto hexadecimal após o dois-pontos é um [:ChangeSetID:changeset ID] (identificador de changeset) abreviado; ele identifica o changeset, e é o mesmo em todos os repositórios que contenham este changeset. Sempre que você discutir um changeset com outra pessoa, use o changeset ID, e não o número de revisão. | * O número hexadecimal após o dois-pontos é um [:ChangeSetID:changeset ID] (identificador de changeset) abreviado; ele identifica o changeset, e é o mesmo em todos os repositórios que contenham este changeset. Sempre que você discutir um changeset com outra pessoa, use o changeset ID, e não o número de revisão. |
Line 53: | Line 34: |
* Você pode atribuir um ou mais tags a qualquer changeset. Na prática, não serão muitos os changesets que terão uma tag associada a eles, de modo que a linha {{{tag}}} nem sempre estará presente. | * Você pode atribuir uma ou mais tags a um changeset qualquer. Na prática, não serão muitos os changesets que terão uma tag associada a eles, de modo que a linha {{{tag}}} nem sempre estará presente. |
Line 55: | Line 36: |
* {{{user}}} (usuário) identifica a pessoa que criou o changeset. Este é um texto livre; ele costumeiramente contém um endereço eletrônico, e algumas vezes também o nome da pessoa. | * {{{user}}} (usuário) identifica a pessoa que criou o changeset. Este é um texto livre; ele tipicamente contém um endereço eletrônico, e algumas vezes também inclui o nome da pessoa. |
Line 58: | Line 39: |
* {{{parent}}} identifica os changesets [:Parent:pais], no caso de haver mais de um (isso acontece quando você [:Merge:recombina] mudanças de vários repositórios). | * {{{parent}}} identifica os changesets [:Parent:pais], no caso de haver mais de um (isso acontece quando você faz um [:Merge:merge] (recombinação) de mudanças de vários repositórios). |
Line 61: | Line 42: |
##We can get more detailed history information by asking for verbose output with the {{{-v}}} option, or the {{{--debug}}} global option for everything under the sun: | |
Line 91: | Line 71: |
##Verbose output contains a few more fields than the default output. A saída prolixa contém alguns campos mais que a saída padrão. |
A saída prolixa contém alguns campos mais do que a saída padrão: |
Line 94: | Line 73: |
## * {{{changeset}}} now gives the unabbreviated changeset ID. ## * {{{files}}} lists the files modified in this changeset. ## * {{{description}}} contains the complete multi-line description of the changeset, rather than just the first line. ## * In our case, the descriptions are only one-line long, so there's not much difference. |
|
Line 103: | Line 78: |
##The --debug output adds the following fields to the verbose output (see also ["DebuggingFeatures"]): | |
Line 106: | Line 80: |
## * {{{file+}}} lists the file added in this changeset. ## * {{{file-}}} lists the file removed in this changeset. ## * {{{manifest}}} gives the [:Manifest:manifest] ID for this changeset. ## * two {{{parent}}} fields giving the changeset ID of both parents for this changeset, where {{{-1:0000000000000000000000000000000000000000}}} refers to a non-existant parent. |
|
Line 116: | Line 86: |
##The {{{log}}} command comes with a {{{-r}}} option to view specific changesets. O comando {{{log}}} possui uma opção {{{-r}}} para exibir changesets específicos. |
O comando {{{log}}} possui uma opção {{{-r}}} para exibir changesets específicos: |
Line 128: | Line 97: |
##<!> The {{{-r}}} option actually supports a very flexible syntax to select range of changesets. However, due to limited number of changesets available in our sample repository, we are unable to provide a good demonstration. Please consult the [http://www.selenic.com/mercurial/hg.1.html manpage] for more information. | |
Line 131: | Line 99: |
##The {{{log}}} command also comes with a {{{-p}}} option to show the patches associated with the changesets: O comando {{{log}}} também possui a opção {{{-p}}} que mostra os patches associados aos changesets: |
O comando {{{log}}} também possui a opção {{{-p}}} que mostra os ''patches'' (arquivos que descrevem diferenças) associados aos changesets: |
Line 150: | Line 117: |
##We can also use the {{{tip}}} command to show info of the ''tip'', i.e. the latest, changeset. The {{{tip}}} command may be considered a shortcut to {{{log -r tip}}}. | |
Line 170: | Line 136: |
##Now that we have some slight idea of what has happened, let's jump in and make some changes! Onwards, to TutorialFirstChange! Agora que nós temos uma noção do que aconteceu, vamos fazer algumas mudanças! Em frente, com ../BrazilianPortugueseTutorialFirstChange! |
Agora que nós temos uma noção do que já aconteceu, vamos fazer algumas mudanças! Em frente, com ../BrazilianPortugueseTutorialFirstChange! |
Tutorial - examinar o histórico do repositório
(This page in English: [:TutorialHistory])
Neste ponto, nós já acompanhamos ../BrazilianPortugueseTutorialClone para fazer um clone de um repositório; nossa cópia local é chamada my-hello.
Vamos examinar o histórico deste [:Repository:repositório]. Para isso, usamos o comando log , que imprime um resumo de cada evento que ocorreu no repositório, do mais recente para o mais antigo.
$ cd my-hello $ hg log changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile changeset: 0:0a04b987be5a user: mpm@selenic.com date: Fri Aug 26 01:20:50 2005 -0700 summary: Create a standard "hello, world" program
Estas linhas de saída são descritas a seguir.
Cada parágrafo descreve um [:ChangeSet:changeset] (conjunto de mudanças) específico. Um changeset é uma mudança de um ou mais arquivos, agrupada em uma unidade lógica.
- Em nosso caso acima, podemos ver que o histórico do repositório consiste de dois changesets.
changeset identifica o changeset.
O primeiro número antes do dois-pontos é um [:RevisionNumber:revision number] (número de revisão); é uma maneira local compacta de identificar o changeset. Ele é válido apenas para este repositório.
O número hexadecimal após o dois-pontos é um [:ChangeSetID:changeset ID] (identificador de changeset) abreviado; ele identifica o changeset, e é o mesmo em todos os repositórios que contenham este changeset. Sempre que você discutir um changeset com outra pessoa, use o changeset ID, e não o número de revisão.
tag é uma [:Tag:tag] (etiqueta), um nome simbólico arbitrário para um changeset.
Você pode atribuir uma ou mais tags a um changeset qualquer. Na prática, não serão muitos os changesets que terão uma tag associada a eles, de modo que a linha tag nem sempre estará presente.
A tag especial denominada tip (ponta) sempre identifica a [:Tip:tip], que é o changeset mais recente no repositório. Se você criar outro changeset (o que faremos em breve), a tag tip será removida do changeset mais recente e adicionada ao novo changeset.
user (usuário) identifica a pessoa que criou o changeset. Este é um texto livre; ele tipicamente contém um endereço eletrônico, e algumas vezes também inclui o nome da pessoa.
date (data) descreve quando o changeset foi criado. Essas datas são impressas no fuso horário do criador do changeset.
summary (resumo) dá a primeira linha da descrição do changeset. Isto foi colocado pelo criador do changeset no momento em que o criou, para auxiliar a si mesmo e aos outros a entender o propósito do changeset (veja também ["ChangeSetComments"]).
parent identifica os changesets [:Parent:pais], no caso de haver mais de um (isso acontece quando você faz um [:Merge:merge] (recombinação) de mudanças de vários repositórios).
- Na maior parte das vezes há apenas um pai, que é o changeset mais velho que o próprio. Esse é o caso em nosso exemplo acima.
Podemos obter informações de histórico mais detalhadas pedindo pela saída prolixa com a opção -v , ou a opção global --debug para todos os detalhes:
$ hg log -v changeset: 1:82e55d328c8ca4ee16520036c0aaace03a5beb65 tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 files: Makefile description: Create a makefile (...) $ hg log --debug manifest: 1:0c7c1d435e6703e03ac6634a7c32da3a082d1600 changeset: 1:82e55d328c8ca4ee16520036c0aaace03a5beb65 tag: tip parent: 0:0a04b987be5ae354b710cefeba0e2d9de7ad41a9 parent: -1:0000000000000000000000000000000000000000 user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 files+: Makefile description: Create a makefile (...)
A saída prolixa contém alguns campos mais do que a saída padrão:
changeset agora fornece o changeset ID sem abreviação.
files (arquivos) lista os arquivos modificados neste changeset.
description (descrição) contém a descrição completa em múltiplas linhas do changeset, ao invés de apenas a primeira linha.
- No nosso caso, as descrições contém apenas uma linha, então não há muita diferença.
A saída --debug adiciona os seguintes campos à saída prolixa (veja também ["DebuggingFeatures"]):
file+ lista um arquivo adicionado neste changeset.
file- lista um arquivo removido neste changeset.
manifest fornece o [:Manifest:manifest] ID para este changeset.
dois campos parent que fornecem o changeset ID de ambos os pais deste changeset, onde -1:0000000000000000000000000000000000000000 se refere a um pai não-existente.
O comando log possui uma opção -r para exibir changesets específicos:
$ hg log -r1 changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile
A opção -r na verdade suporta uma sintaxe bastante flexível para selecionar seqüências de changesets. No entanto, devido ao número limitado de changesets em nosso repositório de exemplo, nós não podemos fornecer uma boa demonstração aqui. Por favor consulte a [http://www.selenic.com/mercurial/hg.1.html página de manual] para mais informações.
O comando log também possui a opção -p que mostra os patches (arquivos que descrevem diferenças) associados aos changesets:
$ hg log -r1 -p changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile diff -r 0a04b987be5a -r 82e55d328c8c Makefile --- /dev/null Fri Aug 26 01:20:50 2005 -0700 +++ b/Makefile Fri Aug 26 01:21:28 2005 -0700 @@ -0,0 +1,1 @@ +all: hello
Nós também podemos usar o comando tip para exibir informações da tip, ou seja, do último changeset. O comando tip pode ser considerado um atalho para log -r tip.
$ hg tip changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile $ hg log -r tip changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile
Agora que nós temos uma noção do que já aconteceu, vamos fazer algumas mudanças! Em frente, com ../BrazilianPortugueseTutorialFirstChange!