Size: 12054
Comment:
|
Size: 12334
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 15: | Line 15: |
Obsah a složení souborů či složek v repozitóriu se mění v závislosti na nastavené aktuální revizi, jejíž obsah je prezentován pracovním adresářem. |
Obsah a složení souborů či složek v repozitóriu se mění v závislosti na nastavené aktuální revizi, jejíž obsah je prezentován '''pracovním adresářem'''. |
Line 20: | Line 19: |
''?'' - neznámý soubor, o němž Mercurial ví jen to, že existuje v repozitóriu ''I'' - původně neznámý soubor, zařazený do seznamu ignorovaných souborů ''A'' - původně neznámý soubor, zařazený jako kandidát pro komit ''M'' - změněný sledovaný soubor, je kandidátem pro komit ''!'' - původně sledovaný soubor, ručně smazaný, přejmenovaný či přemístěný ''R'' - soubor, odebraný ze sledování příkazem ´´hg remove´´ |
.''?'' - neznámý soubor, o němž Mercurial ví jen to, že existuje v repozitóriu .''I'' - původně neznámý soubor, zařazený do seznamu ignorovaných souborů .''A'' - původně neznámý soubor, zařazený jako kandidát pro komit .''M'' - změněný sledovaný soubor, je kandidátem pro komit .''!'' - původně sledovaný soubor, ručně smazaný, přejmenovaný či přemístěný .''R'' - soubor, odebraný ze sledování příkazem ´´hg remove´´ |
Line 35: | Line 29: |
[[CzechWorkingDirectory|Pracovní adresář]] je fiktivní prostředí, které umožňuje manipulaci se souboury a složkami projektu jako v normálním pracovním adresáři. Timto "fiktivním" prostředím je ve skutečnosti repozitórium. V systému Mercuriálu je pracovní adresář prezentován jako editovatelný přímý potomek (dítě) aktuálního changesetu (případně changesetů při nekomitovaném sloučení), jímž může být kterýkoliv existující changeset, zpravidla však jím je ten poslední. |
[[CzechWorkingDirectory|Pracovní adresář]] je prostředí repozitória, které umožňuje manipulaci se souboury a složkami projektu jako v normálním pracovním adresáři. V systému Mercuriálu je pracovní adresář prezentován jako editovatelný přímý potomek (dítě) aktuálního changesetu (případně changesetů při nekomitovaném sloučení), jímž může být kterýkoliv changeset, zpravidla ten poslední. |
Line 49: | Line 43: |
Složka '''.hg/store''' obsahuje kompletní historii projektu. Na rozdíl od tradičních SCM, kde existuje pouze jedna centrální kopie historie, zde má každé repozitórium svou vlastní kopii historie. To umožňuje paralelní vývoj projektů. | Složka '''.hg/store''' obsahuje kompletní historii projektu. Na rozdíl od tradičních VCS, kde existuje pouze jedna centrální kopie historie, zde má každé repozitórium svou vlastní kopii historie. To umožňuje paralelní vývoj projektů. |
Line 51: | Line 45: |
/* | |
Line 58: | Line 52: |
label="pracovní adresář"; | label="pracovní adresář - repozitórium"; |
Line 63: | Line 57: |
"main.c" -> "main.h" -> ".hgignore" -> ".hgtags"; | "main.c" -> "main.h" -> ".hgignore" -> ".hg/"; |
Line 76: | Line 70: |
*/ | Ilustrace se pokouší naznačit, že rodičovskou revizí pracovního adresáře (repozitória) je revize č. 2, uložená ve složce .hg/store. |
Line 85: | Line 79: |
Repozitář obsahuje historii projektu, repozitórium (potažmo pracovní adresář) obsahuje časový snímek projektu v určitém bodě historie. Často se slovem "repozitář" označuje nepřesně jak repozitórium, tak i repozitář. == Registrace změn == Provedením příkazu '''commit''' se stav pracovního adresáře zapíše jako nový [[ChangeSet|changeset]] neboli [[Revision|revize]] do repozitáře. |
Repozitář obsahuje celou historii projektu, repozitórium (potažmo pracovní adresář) obsahuje časový snímek projektu v určitém bodě historie. ## == Registrace změn == ## Provedením příkazu '''commit''' se stav pracovního adresáře zapíše jako nový [[ChangeSet|changeset]] neboli [[Revision|revize]] do repozitáře. /* |
Line 118: | Line 112: |
Revize 4 byla vytvořena v situaci, kdy již existovala revize 3 a aktuální revizí pracovního adresáře v té chvíli byla revize 2. Revize 4 zakládá novou '''[[Branch|větev]]''' v historii changesetů a je ''rodičem'' pracovního adresáře. |
*/ ## Revize 4 byla vytvořena v situaci, kdy již existovala revize 3 a aktuální revizí pracovního adresáře v té chvíli byla revize 2. Revize 4 zakládá novou '''[[Branch|větev]]''' v historii changesetů a je ''rodičem'' pracovního adresáře. |
Line 123: | Line 118: |
Mercurial sdružuje změny ve vícerých souborech do jednotlivých atomických (nedělitelných) [[ChangeSet|changesetů]]. Každému changesetu je přiřazeno pořadové [[RevisionNumber|číslo revize]]. Protože Mercurial umožňuje decentralizovaný paralelní vývoj projektů, bývají tato čísla u různých uživatelů různá. |
Mercurial sdružuje změny ve více souborech do jednotlivých atomických (nedělitelných) [[ChangeSet|changesetů]]. Každému changesetu je přiřazeno pořadové [[RevisionNumber|číslo revize]]. Protože Mercurial umožňuje decentralizovaný paralelní vývoj projektů, bývají tato čísla u různých uživatelů různá. |
Line 151: | Line 145: |
[[Branch|Větvení]] a [[Merge|slučování]] se může vyskytnout kdekoliv v historii projektu. Každá nesloučená větev vytváří nové [[Head|čelo]] (head) historie. V naší ukázce jsou čely revize 5 a 6. Revize 6 je považována za '''tip''' repozitáře, čelo s nejvyšším číslem revize. Revize 4 je [[MergeChangeset|slučovací]], protože má dva rodičovské changesety (revize 2 a 3). | [[Branch|Větvení]] a [[Merge|slučování]] se může vyskytnout kdekoliv v historii projektu. Každá nesloučená větev vytváří nové [[Head|čelo]] (head) historie. V naší ukázce jsou čely revize 5 a 6. Revize 6 je považována za '''tip''' (hrot) repozitáře, čelo s nejvyšším číslem revize. Revize 4 je [[MergeChangeset|slučovací]], protože má dva rodičovské changesety (revize 2 a 3). |
Line 178: | Line 172: |
Bertík nyní může pracovat nezávisle na Alence. Vytvoří dvě změny '''e''','''f''', které postupně potvrdí příkazem commit: | Bertík nyní může pracovat nezávisle na Alence. Vytvoří dvě změny '''e''','''f''', které postupně zaregistruje příkazem commit: |
Line 191: | Line 185: |
Alenka si vytvoří svou vlastní paralelní změnu '''g''': | Alenka si vytvoří svou vlastní paralelní změnu '''g'''. Odlišné repozitáře v této chvíli představují dvě odlišné [[Branch|větve]] jejich společného projektu. |
Line 203: | Line 197: |
Nyní se Bertík synchronizuje s Alenkou pomocí příkazu ''pull''. Tímto příkazem zkopíruje všechny změny Alenčina repozitáře (zde pouze změnu g) do svého repozitáře. | Nyní se Bertík synchronizuje s Alenkou pomocí příkazu ''pull''. Tímto příkazem zkopíruje všechny změny Alenčina repozitáře (zde tedy pouze změnu g) do svého repozitáře. Bertíkův pracovní adresář však zůstává nezměněn. |
Line 277: | Line 271: |
Všimneme si, že po provedení příkazu pull je Alenčin pracovní adresář stále potomkem revize '''g'''. Alenka musí ještě provést příkaz ''update'' aby její pracovní adresář ukazoval na slučující changeset '''h'''. | Všimneme si, že po provedení příkazu pull je Alenčin pracovní adresář stále potomkem revize '''g'''. Alenka musí ještě provést příkaz ''update'' aby její pracovní adresář ukazoval na slučující changeset '''h''' a aby aktualizoval soubory v jejím pracovním adresáři vzhledem k revizi '''h'''. |
Line 296: | Line 290: |
Nyní jsou Alenčin a Bertíkův repozitář plně synchronizovány. | Nyní jsou Alenčin a Bertíkův repozitáře opět plně synchronizovány. |
Line 300: | Line 294: |
Mercurial je úplně decentralizovaný systém bez cenrálního repozitáře. Uživatelé si mohou volně definovat své konstelace pro sdílení změn (viz CommunicatingChanges), včetně vyčlenění jednoho repozitáře jako centrálního: | Mercurial je úplně decentralizovaný systém bez centrálního repozitáře. Uživatelé si mohou volně definovat své konstelace pro sdílení změn (viz CommunicatingChanges), včetně vyčlenění jednoho repozitáře jako centrálního: |
Základní pojmy Mercurialu
Decentralizovaný model Mercurialu může být pro nového uživatele matoucí. Tato stránka se pokouší osvětlit některé z jeho základních pojmů. Postupný výklad viz Tutorial Mercurialu.
Contents
1. Repozitórium
Repozitórium je vnímavý kořenový adresář projektu, který obsahuje složku .hg, zvanou repozitář (Repository) a další složky a soubory, které tvoří sledovaný i nesledovaný obsah projektu.
Obsah a složení souborů či složek v repozitóriu se mění v závislosti na nastavené aktuální revizi, jejíž obsah je prezentován pracovním adresářem.
Soubory v repozitóriu mohou mít různý statut podle toho, jak jsou zapojeny do systému Mercurial:
? - neznámý soubor, o němž Mercurial ví jen to, že existuje v repozitóriu
I - původně neznámý soubor, zařazený do seznamu ignorovaných souborů
A - původně neznámý soubor, zařazený jako kandidát pro komit
M - změněný sledovaný soubor, je kandidátem pro komit
! - původně sledovaný soubor, ručně smazaný, přejmenovaný či přemístěný
R - soubor, odebraný ze sledování příkazem ´´hg remove´´
2. Pracovní adresář
Pracovní adresář je prostředí repozitória, které umožňuje manipulaci se souboury a složkami projektu jako v normálním pracovním adresáři.
V systému Mercuriálu je pracovní adresář prezentován jako editovatelný přímý potomek (dítě) aktuálního changesetu (případně changesetů při nekomitovaném sloučení), jímž může být kterýkoliv changeset, zpravidla ten poslední.
Obsah a složení souborů či složek v pracovním adresáři (potažmo v repozitóriu) odpovídají obsahu a složení souborů či složek vybraného changesetu v čase jeho vytvoření (komitu).
Komitované změny pracovního adresáře představují nový changeset.
Zcela běžně se pro jednu a tutéž komitovanou změnu používají slova revize, changeset a komit.
3. Repozitář
Repozitář je technicky vzato složka .hg v repozitóriu.
Složka .hg/store obsahuje kompletní historii projektu. Na rozdíl od tradičních VCS, kde existuje pouze jedna centrální kopie historie, zde má každé repozitórium svou vlastní kopii historie. To umožňuje paralelní vývoj projektů.
Ilustrace se pokouší naznačit, že rodičovskou revizí pracovního adresáře (repozitória) je revize č. 2, uložená ve složce .hg/store.
Na rozdíl od repozitória sleduje repozitář pouze tyto stavy souborů:
- n -- normální
- a -- přidaný
- r -- odebraný
- m -- sloučený
Repozitář obsahuje celou historii projektu, repozitórium (potažmo pracovní adresář) obsahuje časový snímek projektu v určitém bodě historie.