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 pracovní adresář Mercuriálu, který se od běžného pracovního adresáře liší tím, že jeho chování je ovlivňováno programem Mercurial:
Obsahuje složku .hg neboli repozitář a případně další provozní soubory (.hgrc, .hgignore, ...).
- Obsahuje soubory a složky, které jsou součástí projektu. Přítomnost všech těchto položek v adresáři je Mercuriálem reflektovaná, složky jsou přitom pojímány jenom jako objekty na cestě k souborům.
Soubory, které jsou uvedeny v souboru .hgignore, jsou Mercuriálem ignorovány. Soubory, jejichž název byl alespoň jednou akcí commit, pull či push uložen do složky .hg/store/ repozitáře, jsou soubory sledované.
Míra pozornosti, které je soubor v repozitóriu vystaven, se označuje jako statut souboru a má tyto kategorie:
? - neznámý (nesledovaný) 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´´
Sledované soubory jsou v repozitóriu přítomny v závislosti na "příslušnosti" pracovní kopie.
Nesledované soubory (včetně ignorovaných) jsou v repozitóriu přítomny trvale - pokud nejsou smazány.
Repozitórium je tedy vnímavý kořenový adresář projektu, který obsahuje složku .hg, zvanou repozitář a další složky a soubory, které tvoří sledovaný (pracovní kopie) i nesledovaný obsah projektu.
2. Repozitář
Repozitář je technicky vzato složka .hg v repozitóriu.
Následující ilustrace se pokouší naznačit situaci, kdy rodičovskou revizí pracovní kopie (pracovního adresáře) je revize č. 2, uložená ve složce .hg/store.
Subsložka .hg/store obsahuje kompletní historii projektu.
3. Pracovní kopie
Uživatelský přístup (možnost prohlížení a editace souborů) k jednotlivým changesetům repozitáře zajišťuje mechanizmus tak zvané "pracovní kopie", která je vždy spojena s určitým changesetem.
Přítomnost pracovní kopie v repozitóriu se projevuje tím, že složení a obsah souborů v repozitóriu se mění v závislosti na aktuálním napojení "pracovní kopie > changeset".
Změnu propojení (příslušnosti) zařídí příkaz hg update nebo hg update -r X, který orientuje pracovní kopii na poslední revizi (tip) aktuální větve nebo na vybranou revizi X. Vybraná revize je rodičovským changesetem pracovní kopie coby potenciáního nového changesetu.
Komitované změny pracovní kopie představují nový changeset. Nekomitovaným změnám pracovní kopie se říká lokální modifikace. Nemá-li pracovní kopie žádné lokální modifikace, říkáme, že je čistá.
V anglických textech se pro označení tří entit (repozitórium, repozitář, pracovní kopie) používají termíny dva - repozitář a pracovní adresář, někdy dokonce termín jeden - repozitář. Pracovní kopie je v programu Mercurial a TotoiseHg vedena jako pracovní adresář!
Zcela běžně se pro jednu a tutéž komitovanou změnu používají slova revize, changeset a komit.
4. Registrace změn - komit
Provedením příkazu hg commit se stav pracovní kopie zapíše jako nový changeset neboli revize do repozitáře.