Size: 2165
Comment:
|
← Revision 28 as of 2014-01-03 10:37:26 ⇥
Size: 2742
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
V Mercurialu se všechno důležité odehrává uvnitř [[Repository|repozitáře]] - viz [[CzechUnderstandingMercurial|Základní pojmy Mercurialu]]. Funkčně je repozitář prostor pro ukládání změn ve formě diffů. (Nový neprázdný soubor je uložen jako diff mezi novým souborem a prázdným souborem!) |
|
Line 18: | Line 16: |
Půjde-li vše dobře, příkaz {{{clone}}} vytvoří tento výstup (Mercurial 1.4): | Půjde-li vše dobře, příkaz {{{clone}}} vytvoří tento výstup (Mercurial 2.8): |
Line 30: | Line 28: |
Uvnitř repozitória {{{moje-halo}}} nalezneme soubory `hello.c`, `Makefile` a repozitář `.hg`, který obsahuje historii projektu plus různé interní informace -- více viz [[Repository]]. | 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]]. |
Line 32: | Line 30: |
Příkaz `hg clone` přenese (viz [[Cmd:update]]) obsah poslední [[Revision|revize]] z větve ''default'' do [[WorkingDirectory|pracovního adresáře]] repozitória. Informaci o tom, která revize byla použita, získáme příkazem {{{summary}}}::<<FootNote([[Cmd:summary]])>> | Sledované soubory jsou přesnou kopií souborů z hrotové (tip) revize větve "default" v právě klonovaném repozitáři. |
Line 34: | Line 32: |
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 38: | Line 39: |
parent: 1:82e55d328c8c | parent: 1:82e55d328c8c tip |
Line 45: | Line 46: |
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 }}} |
|
Line 46: | Line 51: |
Nyní se již můžeme pustit do zkoumání historie našeho repozitáře na další stránce [[CzechTutorialHistory|Historie repozitáře]]. | 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 [[CzechTutorialHistory|Historie repozitáře]]. |
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.