Differences between revisions 7 and 28 (spanning 21 versions)
Revision 7 as of 2009-11-29 19:35:26
Size: 2613
Editor: Tovim
Comment:
Revision 28 as of 2014-01-03 10:37:26
Size: 2742
Editor: Tovim
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Tutoriál 2 - Klonování repozitáře == == Tutoriál 3 - Klonování repozitáře ==
Line 3: Line 3:
''Předchozí kapitolou [[CzechTutorial|Tutoriálu]] je [[CzechTutorialInstall|Instalace programu]], následuje [[CzechTutorialHistory|Historie repozitáře]]'' ''Předchozí kapitolou [[CzechTutorial|Tutoriálu]] je [[CzechTutorialInit|Vytvoření repozitáře]], následuje [[CzechTutorialHistory|Historie repozitáře]]''
Line 5: Line 5:
V Mercurialu se všechno důležité odehrává uvnitř [[Repository|repozitáře]]. Přísně vzato, repozitář je složka s označením {{{.hg}}}, umístěná spolu s pracovními (a dalšími) soubory uvnitř našeho pracovního adresáře.
Nejjednodušší způsob jak začít s Mercurialem, je použít kopii projektu s již vytvořeným repozitářem.
  Nejjednodušší způsob jak začít s Mercurialem, je použít kopii existujícího projektu s repozitářem a soubory.
Line 8: Line 8:
Použijeme k tomu příkaz {{{clone}}}.<<FootNote(http://www.selenic.com/mercurial/hg.1.html#clone)>> Ten vytvoří [[Clone|klon]] buď celého pracovního adresáře nebo jenom repozitáře, v závislosti na tvaru příkazu. Použijeme k tomu příkaz {{{clone}}} <<FootNote([[Cmd:clone]])>> , kte vytvoří úplnou kopii jiného repozitáře i s případnými pracovními soubory.
Line 10: Line 10:
Pořiďme si kopii nevelkého projektu, kterou uložíme do samočinně vytvořené složky mojeHalo na aktuálním disku: Klonováním vytvoříme kopii projektu "hello" ze stránek selenic.com v nově vytvořeném lokálním repozitóriu {{{moje-halo}}}:
Line 13: Line 13:
> hg clone http://www.selenic.com/repo/hello mojeHalo > hg clone http://www.selenic.com/repo/hello moje-halo
Line 16: Line 16:
Půjde-li vše dobře, příkaz {{{clone}}} vytiskne toto (Mercurial 1.4): Půjde-li vše dobře, příkaz {{{clone}}} vytvoří tento výstup (Mercurial 2.8):
Line 28: Line 28:
Na disku C:\ bychom nyní měli nalézt nový adresář {{{mojeHalo}}}, jehož obsah prozkoumáme otvíráním jednotlivých položek nebo příkazem: V aktuálním adresáři bychom měli nalézt repozitórium s názvem ''moje-halo'', obsahující sledované soubory `hello.c`, `Makefile` a repozitář `.hg`, který obsahuje historii projektu plus různé interní informace -- viz [[Repository]].

Sledované soubory jsou přesnou kopií souborů z hrotové (tip) revize větve "default" v právě klonovaném repozitáři.

V Mercuriálu jsou všechny revize zcela samostatné. Při klonování repozitáře se nový repozitář stává přesnou kopií originálu. Následné odlišné změny lze mezi repozitáři přenášet akcemi ''pull'' (poslat) a ''push'' (stáhnout).

Příkaz `hg clone` přenese repozitář .hg včetně pracovních souborů poslední [[Revision|revize]] (obvykle označované jako "tip") větve ''default'' vzdáleného repozitória do lokálního repozitória. Informaci o tom, která revize byla použita, získáme příkazem {{{summary}}}::<<FootNote([[Cmd:summary]])>>
Line 30: Line 37:
> dir mojeHalo $ cd moje-halo
$ hg summary
parent: 1:82e55d328c8c tip
 Create a makefile
branch: default
commit: (clean)
update: (current)
Line 33: Line 46:
Uvnitř adresáře {{{mojeHalo}}} nalezneme dva soubory `hello.c`, `Makefile` a složku `.hg`, která obsahuje historii repozitáře plus různé interní informace -- více viz [[Repository]].

Tyto soubory jsou přesnou kopií souborů z poslední ([[Tip|tip]]) revize původní větve klonovaného repozitáře.

Informace o kopírované verzi repozitáře získáme příkazem [[Parent|parents]]:<<FootNote(http://www.selenic.com/mercurial/hg.1.html#parents)>>
Repozitórium, které má sloužit jako centrální repozitář projektu - kam se budou změny jenom posílat (příkazem push), nemusí obsahovat pracovní soubory. Takové repozitórium vytvoříme příkazem
Line 40: Line 48:
> cd mojeHalo
> hg parents
changeset: 1:82e55d328c8c
tag: tip
user: mpm@selenic.com
date: Fri Aug 26 01:21:28 2005 -0700
summary: Create a makefile
> hg clone Zdroj Destinace -U
Line 49: Line 51:
'''Note:''' V okamžiku provedeného klonování jsou oba repozitáře totožné. Později se zřejmě oba repozitáře nezávisle na sobě různě změní. Změny lze z jednoho repozitáře do druhého přenést přikazy
[[Pull|pull]] nebo [[Push|push]] -- viz dále.
Lze také klonovat jenom určitou část repozitáře, například jenom určitou větev nebo určitou sadu revizí. Viz "hg help clone".



Line 55: Line 60:
CategoryTutorial CategoryCzech

Tutoriál 3 - Klonování repozitáře

Předchozí kapitolou Tutoriálu je Vytvoření repozitáře, následuje Historie repozitáře

Nejjednodušší způsob jak začít s Mercurialem, je použít kopii existujícího projektu s repozitářem a soubory.

Použijeme k tomu příkaz clone 1 , který vytvoří úplnou kopii jiného repozitáře i s případnými pracovními soubory.

Klonováním vytvoříme kopii projektu "hello" ze stránek selenic.com v nově vytvořeném lokálním repozitóriu moje-halo:

> hg clone http://www.selenic.com/repo/hello moje-halo

Půjde-li vše dobře, příkaz clone vytvoří tento výstup (Mercurial 2.8):

requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved

V aktuálním adresáři bychom měli nalézt repozitórium s názvem moje-halo, obsahující sledované soubory hello.c, Makefile a repozitář .hg, který obsahuje historii projektu plus různé interní informace -- viz Repository.

Sledované soubory jsou přesnou kopií souborů z hrotové (tip) revize větve "default" v právě klonovaném repozitáři.

V Mercuriálu jsou všechny revize zcela samostatné. Při klonování repozitáře se nový repozitář stává přesnou kopií originálu. Následné odlišné změny lze mezi repozitáři přenášet akcemi pull (poslat) a push (stáhnout).

Příkaz hg clone přenese repozitář .hg včetně pracovních souborů poslední revize (obvykle označované jako "tip") větve default vzdáleného repozitória do lokálního repozitória. Informaci o tom, která revize byla použita, získáme příkazem summary::2

$ cd moje-halo
$ hg summary
parent:      1:82e55d328c8c tip
 Create a makefile
branch:      default
commit:      (clean)
update:      (current)

Repozitórium, které má sloužit jako centrální repozitář projektu - kam se budou změny jenom posílat (příkazem push), nemusí obsahovat pracovní soubory. Takové repozitórium vytvoříme příkazem

> hg clone Zdroj Destinace -U

Lze také klonovat jenom určitou část repozitáře, například jenom určitou větev nebo určitou sadu revizí. Viz "hg help clone".

Nyní se již můžeme pustit do zkoumání historie našeho nového repozitáře na další stránce Historie repozitáře.


CategoryCzech

CzechTutorialClone (last edited 2014-01-03 10:37:26 by Tovim)