Differences between revisions 2 and 6 (spanning 4 versions)
Revision 2 as of 2014-01-06 20:57:53
Size: 3539
Editor: Tovim
Comment:
Revision 6 as of 2014-01-07 09:58:12
Size: 3794
Editor: Tovim
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma section-numbers 2 # pragma section-numbers 2
# language: cz

<<TableOfContents>>
Line 5: Line 8:
ísně vzato, termín '''repozitář''' označuje složku '''.hg''' v adresáři projektu, zvaném ''repozitórium'' (viz [[CzechUnderstandingMercurial|Základní pojmy Mercuriálu]]). Termínem '''repozitář''' označujeme složku '''.hg''' v adresáři projektu, zvaném ''repozitórium'' (viz [[CzechUnderstandingMercurial|Základní pojmy Mercuriálu]]).
Pro praktické použití obsahuje tato věta vše, co potřebujeme o repozitáři vědět. Se složkou .hg se nemá manipulovat.
Line 7: Line 11:
Vnitřní ingegritu repozitáře ověříme příkazem `hg verify`.

<<TableOfContents>>


== Vytvoření repozitáře ==

Repozitář lze vytvořit klonováním existujcícího repozitória příkazem `hg clone`, což vytvoří kopii projektového adresáře včetně složky .hg nebo lze v existujícím adresáři projektu vytvořit příkazem `hg init` složku .hg, což z běžného pracovního adresáře vytvoří vnímavý pracovní adresář Mercuriálu, zvaný ''repozitórium''.

== Struktura repozitáře ==

Následující řádky jsou uvedeny jenom jako připomínka toho, že repozitář není jenom složka .hg, nýbrž že to je ve skutečnosti složitá struktura, kterou však není nezbytné znát.

The {{{.hg}}} directory of a repository contains (incomplete listing):
Složka .hg je ve skutečnosti složitá struktura, jak lze usoudit z následujícího (neúplného) výčtu jejích položek:
Line 34: Line 25:

== Vytvoření repozitáře ==

Repozitář lze vytvořit klonováním existujcícího repozitória příkazem `hg clone`, což vytvoří kopii projektového adresáře včetně složky .hg nebo lze v existujícím adresáři projektu vytvořit příkazem `hg init` složku .hg, což z běžného pracovního adresáře vytvoří vnímavý pracovní adresář Mercuriálu, zvaný ''repozitórium''.

Vnitřní integritu repozitáře ověříme příkazem `hg verify`.
Line 38: Line 35:
Všechny soubory v repozitóriu (mimo repozitáře) jsou nějakým způsobem Mercuriálem vnímány. Lze je rozdělit na soubory nesledované a sledované. Všechny soubory v repozitóriu jsou nějakým způsobem Mercuriálem vnímány. Lze je rozdělit na soubory nesledované a sledované.
Line 42: Line 39:
Sledované soubory byly alespoň jednou akcí `commit` nebo `pull` zapsány do repozitáře nebo byly zařazeny do skupiny sledovaných souborů příkazem `hg add`. Sledované soubory byly alespoň jednou akcí `commit` nebo `pull` či `push` zapsány do repozitáře nebo byly zařazeny do skupiny sledovaných souborů příkazem `hg add`.
Line 44: Line 41:
Uživatelský přístup k jednotlivým changesetům repozitáře zajišťuje koncept tak zvané "pracovní kopie", která je spojena vždy s určitým changesetem (většinou posledním). Uživatelský přístup k jednotlivým changesetům repozitáře zajišťuje mechanizmus tak zvané "pracovní kopie", která je spojena vždy s určitým changesetem (většinou posledním).
Line 46: Line 43:
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". 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".
Line 48: Line 45:
Změnu propojení zařídí příkaz `hg update` nebo `hg update -r X`, který orientuje pracovní kopii na poslední revizi nebo na revizi X. Vybraná revize je rodičovským changesetem pracovní kopie coby potenciáního nového changesetu. Změnu propojení 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.

<!> V anglických textech se pro označení tří entit (repozitórium, repozitář, pracovní kopie) používají dva termíny - repozitář a pracovní adresář, někdy dokonce termín jeden - repozitář. Pracovní kopie je v programu Mercurial a !TotoiseHg vedena jako pracovní adresář!
Line 54: Line 53:
* [[RepositoryNaming]]

Repozitář

Termínem repozitář označujeme složku .hg v adresáři projektu, zvaném repozitórium (viz Základní pojmy Mercuriálu). Pro praktické použití obsahuje tato věta vše, co potřebujeme o repozitáři vědět. Se složkou .hg se nemá manipulovat.

Složka .hg je ve skutečnosti složitá struktura, jak lze usoudit z následujícího (neúplného) výčtu jejích položek:

  • The manifest — Files .hg/store/00manifest.i and .hg/store/00manifest.d

    • Describes the file contents of the repository at a particular changeset ID. Stored in revlog format.

  • The changelog — Files .hg/store/00changelog.i and .hg/store/00changelog.d

    • Contains all changesets. Stored in revlog format.
  • A revlog per tracked file — Files .hg/store/data/<encoded path>.i and .hg/store/data/<encoded path>.d

    • <encoded path> is the path of the tracked file in the working directory, encoded according to CaseFoldingPlan.

  • The dirstate — File .hg/dirstate

    • Tracks various information about the working directory.
  • The requires file — File .hg/requires

    • Specifies the capabilities needed by a client to access this repository

Note that for small revlogs, the revlog data file (*.d) may be missing, because its content may be interleaved into the corresponding index file (*.i) (see also RevlogNG).

Vytvoření repozitáře

Repozitář lze vytvořit klonováním existujcícího repozitória příkazem hg clone, což vytvoří kopii projektového adresáře včetně složky .hg nebo lze v existujícím adresáři projektu vytvořit příkazem hg init složku .hg, což z běžného pracovního adresáře vytvoří vnímavý pracovní adresář Mercuriálu, zvaný repozitórium.

Vnitřní integritu repozitáře ověříme příkazem hg verify.

Pracovní kopie

Všechny soubory v repozitóriu jsou nějakým způsobem Mercuriálem vnímány. Lze je rozdělit na soubory nesledované a sledované.

Nesledované soubory jsou ve výstupech Mercuriálu označovány otazníkem, pokud nejsou uvedeny v souboru .hgignore - v tom případě je Mercuriál jakoby "ignoruje".

Sledované soubory byly alespoň jednou akcí commit nebo pull či push zapsány do repozitáře nebo byly zařazeny do skupiny sledovaných souborů příkazem hg add.

Uživatelský přístup k jednotlivým changesetům repozitáře zajišťuje mechanizmus tak zvané "pracovní kopie", která je spojena vždy s určitým changesetem (většinou posledním).

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

<!> V anglických textech se pro označení tří entit (repozitórium, repozitář, pracovní kopie) používají dva termíny - repozitář a pracovní adresář, někdy dokonce termín jeden - repozitář. Pracovní kopie je v programu Mercurial a TotoiseHg vedena jako pracovní adresář!

Viz také


CategoryGlossary

Français

CzechRepository (last edited 2014-01-10 15:31:17 by Tovim)