Differences between revisions 8 and 18 (spanning 10 versions)
Revision 8 as of 2010-04-08 16:31:32
Size: 6106
Editor: Tovim
Comment:
Revision 18 as of 2013-12-28 20:41:59
Size: 6286
Editor: Tovim
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Tutoriál 3 - Zkoumání historie repozitáře == == Tutoriál 4 - Zkoumání historie repozitáře ==
Line 5: Line 5:
V této chvíli máme naklonovaný repozitář v adresáři {{{mojeHalo}}}. V této chvíli máme naklonovaný repozitář v adresáři {{{moje-halo}}}.
Line 23: Line 23:
Výstupní řádky příkazu potřebují jisté vystvětlení. Výstupní řádky příkazu {{{log}}} potřebují jisté vystvětlení.
Line 25: Line 25:
 * Každý odstavec popisuje určitý [[ChangeSet|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ů.
 * Každý odstavec popisuje určitý [[ChangeSet|changeset]]. Changeset je souhrn změn 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ů.
Line 29: Line 29:
   * Hexadecimální řetězec za dvojtečkou je zkrácená forma zápisu [[ChangeSetID|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|tag]], libovolné symbolické označení changesetu.
   * Hexadecimální řetězec za dvojtečkou je zkrácená forma zápisu 40ti místného [[ChangeSetID|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}}} ([[Tag|tag]]), je libovolné symbolické označení changesetu.
Line 32: Line 32:
   * Zvláštní tag jménem {{{tip}}} označuje [[Tip|tip]], což je vždy poslední changeset v repozitáři.    * Zvláštní tag jménem {{{tip}}} označuje poslední changeset v repozitáři.
Line 35: Line 35:
 * {{{summary}}} uvádí první řádek popisu changesetu; popis má pomoci autorovi i ostatním poznat důvod změny (viz také [[ChangeSetComments]]).  * {{{summary}}} uvádí první řádek zprávy changesetu; popis má pomoci autorovi i ostatním poznat důvod změny (viz také [[ChangeSetComments]]).
Line 37: Line 37:
   * 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.    * Většinou bývá pouze jeden rodič, což je changeset bezprostředně předcházející tomu aktuálnímu. Což je také případ našeho příkladu.
Line 39: Line 39:
Podrobnější informaci o historii získáme příkazem verbózního výstupu volbou
{{{-v}}} nebo {{{--debug}}}:

Podrobnější informaci o historii získáme příkazem verbózního výstupu opcí {{{-v}}} nebo {{{--debug}}}:
Line 71: Line 71:
 * {{{files}}} uvádí seznam v changesetu upravených souborů.  * {{{files}}} uvádí seznam upravených souborů v changesetu
Line 82: Line 82:
 * {{{file-}}} vypíše soubory, v changesetu odstraněné.  * {{{file-}}} vypíše soubory, v changesetu odebrané příkazem {{{hg remove}}}.
Line 85: Line 85:
Příkaz {{{log}}} má ještě volbu {{{-r}}} pro zobrazení určitých changesetů. Příkaz {{{log}}} má ještě opci {{{-r}}} pro běr určitých changesetů.
Line 96: Line 96:
<!> 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 [[http://www.selenic.com/mercurial/hg.1.html#log|manpage]]. <!> Opce {{{-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 [[http://www.selenic.com/mercurial/hg.1.html#log|manpage]].
Line 98: Line 98:
Příkaz {{{log}}} má také volbu {{{-p}}} pro zobrazení oprávek (patches), souvisejících s changesetem: Příkaz {{{log}}} má také opci {{{-p}}} pro zobrazení oprávek (patches), souvisejících s changesety:
Line 114: Line 114:
případně při nastavení [defaults] diff = --git -unified 0
{{{
diff --git a/Makefile b/Makefile
new file mode 100644
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,1 @@
+all: hello
}}}

Tutoriál 4 - 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 moje-halo.

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 příkazu log potřebují jisté vystvětlení.

  • Každý odstavec popisuje určitý changeset. Changeset je souhrn změn 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 40ti místného 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 (tag), je 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 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 zprávy changesetu; popis má pomoci autorovi i ostatním poznat důvod změny (viz také ChangeSetComments).

  • parent označuje rodiče changesetu, jež mohou být i dva, jde li o rodiče sloučeného changesetu.

    • Většinou bývá pouze jeden rodič, což je changeset 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 opcí -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 upravených souborů v changesetu

  • 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.

  • dvě pole parent zobrazují ID changesetů u obou rodičů, přičemž -1:0000000000000000000000000000000000000000 odkazuje na rodiče neexistujcího.

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

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

  • file- vypíše soubory, v changesetu odebrané příkazem hg remove.

Příkaz log má ještě opci -r pro výběr 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

<!> Opce -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é opci -p pro zobrazení oprávek (patches), souvisejících s changesety:

> 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

případně při nastavení [defaults] diff = --git -unified 0

diff --git a/Makefile b/Makefile
new file mode 100644
--- /dev/null
+++ b/Makefile
@@ -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!


CategoryCzech

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