Size: 6263
Comment:
|
Size: 6260
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 137: | Line 137: |
CategoryTutorial | CategoryCzech |
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!