Differences between revisions 5 and 6
Revision 5 as of 2009-11-29 17:16:57
Size: 6265
Editor: Tovim
Comment:
Revision 6 as of 2009-11-29 19:35:45
Size: 6263
Editor: Tovim
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
''(Předchozí téma [[CzechTutorial|Tutoriálu]] bylo [[CzechTutorialClone|Klonování repozitáře]]. Následné téma je [[CzechTutorialFirstChange|Vytvoření první změny]]).'' ''Předchozí téma [[CzechTutorial|Tutoriálu]] bylo [[CzechTutorialClone|Klonování repozitáře]]. Následné téma je [[CzechTutorialFirstChange|Vytvoření první změny]].''

Tutoriál 3 - Zkoumání historie repozitáře

Předchozí téma Tutoriálu bylo Klonování repozitáře. Následné téma je Vytvoření první změny.

V této chvíli máme naklonovaný repozitář v adresáři mojeHalo.

Podívejme se na historii tohoto repozitáře. Použijeme k tomu příkaz log. Ten vytiskne souhrn všech událostí, které se v čase vyskytly, počínaje událostí poslední.

> 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

Výstupní řádky programu potřebují jisté vystvětlení.

  • Každý odstavec popisuje určitý changeset, neboli souhrn změn. Changeset je souhrn úprav jednoho či více souborů, seskupený do jedné logické jednotky.

    • V našem příkladě nahoře vidíme, že historie repozitáře se skládá ze dvou changesetů.
  • changeset uvádí identifikaci changesetu.

    • První číslo před dvojtečkou je číslo revize; je to lokální úsporný způsob označení changesetu. Platí jenom uvnitř tohoto repozitáře.

    • Hexadecimální řetězec za dvojtečkou je zkrácená forma zápisu ID changesetu; toto označení je stejné ve všech repozitářích, které changeset obsahují. ID používáme při komunikaci s dalšími osobami.

  • tag je tag, libovolné symbolické označení changesetu.

    • Ke každému changesetu lze připojit jeden či více tagů. Tagy se však většinou nepoužívají, takže řádek tag bude zřídka přítomný.

    • Zvláštní tag jménem tip označuje tip, což je vždy poslední changeset v repozitáři.

  • user označuje osobu, která changeset vytvořila. Je to volný řetězec, který obsahuje jméno a emailovou adresu.

  • date uvádí datum provedené změny. Tento datumový údaj je uváděn v lokální časové zóně tvůrce changesetu.

  • summary uvádí první řádek popisu changesetu. Popis vytváří autor changesetu v čase vytvoření a má pomoci jemu i ostatním poznat důvod změny (viz také ChangeSetComments).

  • parent identifikuje rodiče changesetu, nebo changesetů, je-li jich více než jeden, což se stane při slučování (merge) změn z několika repozitářů.

    • Většinou bývá pouze jeden rodič, což je changet v čase bezprostředně předcházející tomu aktuálnímu. Což je také případ našeho příkladu.

Podrobnější informaci o historii získáme příkazem verbózního výstupu volbou -v nebo --debug:

> hg log -v
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
files:       Makefile
description:
Create a makefile

(...)

> hg log --debug
changeset:   1:82e55d328c8ca4ee16520036c0aaace03a5beb65
tag:         tip
parent:      0:0a04b987be5ae354b710cefeba0e2d9de7ad41a9
parent:      -1:0000000000000000000000000000000000000000
manifest:    1:0c7c1d435e6703e03ac6634a7c32da3a082d1600
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
files+:      Makefile
extra:       branch=default
description:
Create a makefile

(...)

Verbózní výstup obsahuje více polí než normální výstup.

  • files uvádí seznam v changesetu upravených souborů.

  • description obsahuje úplný víceřádkový popis changesetu (pokud je zadán).

    • V našem případě je zadán popis pouze jednořádkový, takže ve výstupech není žádný rozdíl.

Výstup --debug připojí následující pole k verbóznímu výstupu (viz také DebuggingFeatures):

  • changeset ukáže nezkrácené ID changsetu.

  • two parent fields giving the changeset ID of both parents for this changeset, where -1:0000000000000000000000000000000000000000 refers to a non-existant parent. (přeložím později)

  • manifest uvádí manifest ID pro tento changeset.

  • file+ vypíše soubory, přidané k changesetu.

  • file- vypíse soubory, odstraněné z changesetu.

Příkaz log má ještě specifickou volbu -r pro zobrazení určitých changesetů.

> 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

<!> Volba -r ve skutečnosti podporuje velmi flexibilní syntaxi pro určení rozsahu changesetů. Tuto vlastnost si bohužel vzhledem k malému počtu changesetů v našem příkladě neukážeme. Více informací lze získat na manpage.

Příkaz log má také volbu -p pro zobrazení záplat (patches), souvisejících s changesetem:

> 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

Můžeme také použít příkaz tip pro zobrazení posledního changesetu. Příkaz tip lze považovat za zkratku pořadí 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

Nyní, když už máme jisté povědomí o čem je řeč, vrhněme se na provedení nějaké změny! Vzhůru na Vytvoření první změny!


CategoryTutorial

CzechTutorialHistory (last edited 2013-12-28 20:41:59 by Tovim)