Vítejte v dokumentaci pro TortoiseHg!

Contents:

Předmluva

Cílový čtenář

Tato kniha je napsána pro „informovaného“ uživatele, který chce používat Mercurial pro správu svých dat a vyhovuje mu, není-li pro komunikaci s programem omezen pouze na příkazový řádek. TortoiseHg je extenze uživatelského rozhraní Windows.

Nejaktuálnější verzi této dokumentace lze nalézt na webových stránkách TortoiseHg.

Seznámení s obsahem

V kapitole Úvod se seznámíme s instalací programu a s nastavením jeho jazykové verze.

Kapitola Rychlá cesta pro netrpělivé je stručným návodem na užívání programu.

Hlavní kapitola TortoiseHg prakticky zevrubně popisuje často používané nástroje programu.

Kapitola Nastavení parametrů popisuje konfiguraci TortoiseHg.

Kapitola Použití s jinými systémy VCS popisuje použití TortoiseHg jako klientskou aplikaci pro nemercurialové servery.

Kapitola Frequently Asked Questions obsahuje seznam otázek a odpovědí - nepřeloženo.

Kapitola Debugging popisuje řešení možných problémů.

TortoiseHg je volně dostupný program!

TortoiseHg je šířen ve shodě s licenčními podmínkami GPLv2. Lze jej instalovat na neomezené množství počítačů a šířit ve shodě s licencí GPLv2.

Komunita

Developers - Patches, bug reports, development discussions.

Naše Wiki na stránkách Bitbucket je zde .

Poděkování

Dík všem, kteří do projektu TortoiseHg přispívají. Pro vybudování skutečně použitelné aplikace je potřebný kolektiv vývojářů, překladatelů a uživatelů. Dík patří zejména těm uživatelům, kteří nelenují oznámit chybu nebo se podělit o svůj názor.

Instalátor TortoiseHg pro Windows obsahuje ovladač TortoiseOverlays, převzatý z projektu TortoiseSVN.

Prohlížeč historie v TortoiseHg je založen na aplikaci hgview, kterou vytvořil David Douard s kolektivem s finanční podporou Logilab.

Konvence použité v textu

V návodu jsou používány následující typografické konvence:

Ctrl-A
Označuje klávesu nebo kombinaci kláves, které mají být stisknuty.
Commit
Označuje popisek, tlačítko či cokoli, co uvidíme v uživatelském rozhraní.
TortoiseHg ‣ About
Označuje výběr položky z menu nebo kombinaci položek z menu, výběr karty nebo GUI popisku. Například pořadí TortoiseHg ‣ Globální nastavení ‣ Commit ‣ Jméno uživatele nám říká abychom něco zadali v textovém poli Jméno uživatele, které se nachází na záložce Commit, jíž vybereme z nabídky TortoiseHg ‣ Globální nastavení.
.hg/hgrc
Označuje jméno adresáře a souboru.
hg log
Označuje příkaz jež má být zadán na příkazové řádce terminálu (např. cmd.exe).
myproxy:8000
Označuje text, který má být zadán do textového pole grafického rozhraní.

Poznámka

Toto je poznámka.

Varování

Důležitá poznámka nebo varování.

Poznámky překladatele

Program TortoiseHg lze aktivovat buď jako kontextové menu v Průzkumníku Windows nebo jej lze volat příkazem thg <command> z konzoly cmd.exe. U příkazů pro thg se nelze vyhnout anglickým termínům. Rovněž příkazy Mercurialu hg <command> lze zadat pouze v anglickém jazyce.

Z toho vyplývá, že bez znalosti jistého množství anglických slov se při používání TortoiseHg nelze obejít. Proto mnohá slova v manuálu i v lokalizaci nepřekládám.

Slova Workbench překládám jako Verpánek, patch jako oprávka, hunk jako porce, rebase jako přeskupení, graft jako přesazení, collapse jako shluknout, …

Považuji za vhodné vymezit význam slova pracovní adresář. Pracovní adresář je pomyslná složka, která svůj obsah odvozuje z aktuálně nastavené aktuální revize.

Kořenový adresář projeku, který obsahuje složku s názvem .hg neboli repozitář je rovněž dynamický útvar a v tomto textu bude označován jako repozitórium. Pro každou revizi může mít repozitórium jiné složení souborů!

Nutno dodat, že pojem repozitář se často (nepřesně) používá i pro repozitórium.

Termíny changeset a revize jsou prakticky zaměnitelné.

Případné připomínky vítám: tovim@seznam.cz

Úvod

Co je TortoiseHg?

TortoiseHg je sada grafických nástrojů a extenzí uživatelského rozhraní programu Mercurial (CzechMercurial) pro necentralizovanou (neboli distribuovanou) správu verzí.

Ve Windows
se TortoiseHg skládá z grafické aplikace Verpánek (Workbench), z extenze uživatelského rozhranní s překryvnými ikonami a kontextovým menu v Průzkumníku a z programu pro příkazový řádek thg.exe který spouští nástroje TortoiseHg. Binární pakety aplikace TortoiseHg pro Windows obsahují Mercurial i slučovací nástroj a je proto možné je použít bezprostředně po instalaci.
V Linuxu
se TortoiseHg skládá ze skriptu thg pro příkazový řádek a z extenze Nautilusu, která poskytuje překryvné ikony a kontextové menu v průzkumíku souborů. Pro činnost TortoiseHg v Linuxu je potřebná oddělená instalace programu Mercurial. Binární pakety TortoiseHg znají Mercurial jako závislou aplikaci, která je obvykle instalována automaticky.

Poznámka

Ve Window obsahuje TortoiseHg jak thg.exe, tak thgw.exe. programy. Nástroj thgw.exe je zamýšlen pro použití v zástupci na ploše nebo v menu. Nástroj thg.exe je určen pro použití v konzoli a pro volání nápovědy z příkazového řádku. Dávkový soubor thg.cmd, který instalace přidá do proměnné PATH, volá thg.exe.

TortoiseHg je napsán převážně v Pythonu a PyQt (extenze rozhraní Windows je významná výjimka). Skript thg a dialogy TortoiseHg lze použít na jakékoliv platformě, která podporuje PyQt, včetně Mac OS X.

Instalace TortoiseHg

Ve Windows

TortoiseHg je dodáván se snadno ovladatelným instalačním programem. Aktuální verzi lze nalézt na naši webové stránce. Dvojím poklepem na staženém souboru spustíme instalaci a sledujeme pokyny.

Během aktualizací nás instalátor požádá, abychon zavřeli nebo restartovali všechny aplikace, které si načetly extenze rozhranní TorotiseHg. Pokud aplikace zavřeme, aktualizace nebude požadovat restart počítače. Jsou-li připojeni jiní uživatelé, nebo nelze-li některé aplikace zavřít, bude pro ukončení instalace požadován restart.

Poznámka

Máme-li nainstalovánu starší verzi TortoiseHg, požádá nás instalátor abychom ji odinstalovali.

Varování

Starší instalační programy (<=0.9.3) mají tendenci při odinstalování smazat soubor Mercurial.ini. Je dobré si jej zálohovat před odinstalováním starších verzí TortoiseHg. Tento problém se nevyskytuje u novějších paketů MSI.

Starší instalační programy (před verzí 1.0) byly vytvořeny s InnoSetup. Balíček TortoiseOverlay instalovaly jako separátní aplikaci, takže v ovládacím panelu Přidat/Odebrat programy jsme mohli vidět jak TortoiseHg, tak TortoiseOverlay. (U platforem x64 byly TortoiseOverlay dvakrát, jednou pro procesy x86 a jednou pro procesy x64).

Nové instalátory pro THg obsahují pakety TortoiseOverlay jako „sloučené moduly“, takže se již neobjevují jako separátní aplikace. Mohlo by být bezpečné odinstalovat starší aplikaci TortoiseOverlay nástrojem Přidat/Odebrat programy poté, co odinstalujeme starší TortoiseHg (<= 0.9.3) - pokud nemáme jiné produkty Tortoise (TortoiseCVS nebo TortoiseBZR), které TortoiseOverlay používají.

Poznámka

TortoiseOverlay je „shim“ paket, který umožňuje sdílet překryvné sloty více extenzím rozhraní. To je nezbytné, protože i moderní platformy Windows podporují jenom omezený počet překryvných slotů (11-14). Pakety TortoiseOverlay vytvářejí vývojáři TortoiseSVN.

Bezpečné jsou tyto dvě možnosti:

  1. Ponecháme staré balíčky TortoiseOverlay nainstalovány, neboť ničemu neškodí.
  2. Staré balíčky TortoiseOverlay odinstalujeme a přeinstalujeme všechny své produkty Tortoise.

Pokud se i potom vyskytnou problémy s extenzí rozhraní, doporučujeme znovu spustit instalátor s volbou Repair (Opravit).

Jazykové nastavení

Uživatelské rozhraní TorotiseHg bylo přeloženo do mnoha jazyků. Jazykové balíčky nejsou potřebné, neboť všechny přeložené jazyky jsou nainstalované. Preferovaný jazyk lze nastavit v nástroji pro globální konfiguraci (Settings > TortoiseHg > Jazyk aplikace).

Kontextové nabídky rozhraní Windows jsou překládány pomocí registrů Windows. Překlady pro mnohé lokalizace byly nainstalovány do složky C:\Program Files\TortoiseHg\i18n\cmenu. Na vybraném jazyku proveďte dvojpoklep a potvrďte dotazy.

V OS Linux a Mac

Nejposlednější pakety ke stažení pro Linux lze nalézt na našich stránkách.

Pro MacOSX nejsou žádné balíčky k disposici, ale je možné používat thg a všechny dialogy pomocí instalační metody. Podrobnosti viz MacOSX.

Poznámka

Při instalaci TortoiseHg ze zdroje, je nutné nějakým způsobem přidat soubor contrib\mergetools.rc do cesty HGRC. Možný způsob je přidat jej ze souboru ~/.hgrc.

Co je nového

TortoiseHg 2.0

Filosofie

Mezi TortoiseHg 1.0 a TortoiseHg 2.0 došlo k následujícím změnám.

Verpánek

Chtěli jsme mít jedinou aplikaci, která by měla přístup k téměř všem funkcím TortoiseHg (a Mercurialu) a která by šla spustit zástupcem z plochy, nebo výběrem z menu Start. Za tím účelem jsme vyvinuli aplikaci Workbench neboli Verpánek.

Verpánek podporuje otevření a zobrazení více než jednoho repozitáře na kartách, aktivovaných poklepem na položce seznamu v panelu Seznam repozitářů.

Každá repozitářová karta je propojena s úkonovými kartami (Podrobnosti revizí, Commit, Synchronizace, Hledat), které se zobrazují v úkonové ploše pod Přehledem revizí. Tyto karty se přepínají poklepem na ouška, ikonami v úkonové liště nebo výběrem nabídky v roletce View.

K disposici jsou také tři parkovatelné panely - Seznam repozitářů, Fronta oprávek a Výstupní konzola* (Output Log). První zobrazuje stromovou strukturu lokálních repozitářů v počítači, druhý panel se použije při manipulaci s oprávkami (patches) a třetí panel zobrazuje aktuálně prováděné příkazy a lze jej použít i pro zadávání příkazů.

Zobrazení příkazového řádku Mercuriálu

Ve snaze poučit uživatele o použitých příkazech Mercuriálu, jsou téměř všechny příkazy souběžně zobrazovány ve výstupní konzole, včetně následného výstupu z Mercuriálu.

Nástroj Resolve, uvážlivá sloučení

TortoiseHg 2.0 zavádí dialog ‚resolve‘ pro řešení konfliktů při slučování souborů. Ukazuje uživateli všechny soubory, které potřebují řešení i soubory již rozřešené, umožňujíce kontrolu sloučení.

Za podpory procedury ‚resolve‘ mohou být jednotlivá sloučení restartována tak často, jak je pro správné sloučení souborů zapotřebí.

Proceduru ‚resolve‘ použije TortoiseHg implicitně k řešení všech konfliktů. Pokud je úspěšné, dojde k automatickéhu sloučení, pokud ne, musí konflikt vyřešit uživatel.

Zlepšené odkládání souborů

Tortoise 2.0 obsahuje nový odkládací nástroj zvaný ‚shelve‘ který umí přesouvat změny z pracovního adresáře do šelfového souboru (shelf file) nebo do neaplikované oprávky MQ (MQ patch).

Sady revizí

Lištu pro nastavení filtru v Repozitory Explorer jsme ve Verpánku nahradili Pracovní lištou filtru pro výběr sad revizí (implicitně není zobrazena). Sady revizí byly zavedeny v Mercurialu 1.6 a byly v každém dalším vydání integrovány se stoupajícím počtem příkazů. Je to mocný dotazovací nástroj pro vyhledávání revizí v repozitáři.

Verpánek obsahuje také editor sady revizí, který je zdrojem poučení o dostupných klíčových slovech a jejich argumentech, a má schopnost doplňovat otevřené závorky, počatá slova a další.

Příchozí a odchozí changesety jsou nyní v TortoiseHg 2.0 zobrazeny jako sady revizí. V předchozích verzích byly reprezentovány komentářem ke grafu.

Technologie

Qt a PyQt

Téměř všechny nástroje a dialogy v TortoiseHg 2.0 byly přepsány pro využití vynikajících aplikací Qt a PyQt.

QScintilla2

TortoiseHg používá značnou měrou editovací komponenty aplikace QScintilla2 pro: * zobrazení souborů a diffů se zvýrazněním syntaxe * zobrazení anotací se zvýrazněním syntaxe * editaci komitových zpráv s automatickým dokončováním jmen souborů a zdrojových symbolů * editaci řetězců sad revizí (revision set strings) s doplňováním závorek a s automatickým dokončováním.

Délku tabulátoru lze nastavit v konfiguračním nástroji, zatímco délky řádků a viditelnost „white space“ jsou ovládány z kontextových menu.

Zjišťování stavu repozitáře a konfigurace

Verpánek a další aplikace, jako např. nástroj commit prohledají repozitáře ve vašem počítači aby v nich nebo v konfiguračních souborech zjistily změny a automaticky v případě potřeby aktualizovaly běžící aplikace. Téměř všechny konfigurační změny jsou okamžitě účinné kromě povolení či zakázání extenzí Mercurialu. Změny nastavení extenzí obvykle vyžadují restart aplikace.

Okamžité hlášení chyb

Před TortoiseHg 2.0 bylo hlášení chyb zapisováno do stderr v okamžiku jejich vzniku a stderr byl odchycen a skenován pro předání uživateli při ukončení aplikace. I když se tímto mechanizmem získalo mnoho cenných chybových zpráv, bylo možné jen výjimečně zjistit, které operace chybu způsobily.

Pro TortoiseHg 2.0 byl vytvořen generický manipulátor výjimek, který odchytí všechny výjimky Pythonu, které by jinak zůstaly kódem aplikace neošetřeny. To umožňuje zobrazit záznamy výjimek téměř okamžitě po jejich vzniku (po krátké pauze potřebné pro shromáždění za sebou jdoucích výjimek). Očekává se, že chybové zprávy budou napříště obsahovat lepší instrukce pro reprodukci nebo alespoň souvislosti pro zpětné záznamy.

Načtení grafu dle požadavku

Za účelem pružného zobrazení načítá grafový algoritmus při akci refresh implicitně jenom několik stovek revizí a poté načítá pouze požadované revize. Při procházení Přehledem revizí může dojít k jeho trhavému zobrazení. Tento projev lze odstanit příkazem Načíst všechny revize v menu View.

Rychlá cesta pro netrpělivé

Jak už bylo řečeno, TortoiseHg je sada grafických aplikací, které spolu s Průzkumníkem Windows slouží jako uživatelsky přívětivé rozhranní pro DVCS Mercurialu (distributed version control system - necentralizovaný systém správy verzí).

Všechny nástroje TortoiseHg jsou přístupné ze třech míst:

  1. Z aplikace Verpánek

    Verpánek (Workbench) spustíme z menu Start nebo z kontextového menu aktivovaného poklepem pravé klávesy myši s kurzorem kdekoli v ploše monitoru.

    Desktop Context Menu

    Spuštění Verpánku z plochy monitoru

  2. Z kontextového menu Explorer

    Na vybrané složce či souboru v Průzkumníku provedeme pravý poklep a vybereme položku z kontextového menu.

  3. Příkazem thg z příkazového řádku

    V konzoli cmd.exe či v jiném terminálu zadáme příkaz thg <command> [opce].

Příkazy Mercurialu jsou dostupné také z příkazového řádku příkazem hg <command>.

Poznámka

Při zadávání příkazu z příkazového řádku se předpokládá, že repozitórium je aktuálním adresářem příkazové konzoly.

Nastavení programu

Nejprve se musíme do programu TortoiseHg řádně zapsat. Uděláme to tak, že otevřeme dialog pro globální nastavení.

Verpánek: :menuselection: File > Settings

Průzkumník: :menuselection: TortoiseHg > Globální nastavení

Příkazem: thg userconfig

Tím si otevřeme dialogové okno Nastavení TortoiseHg pro úpravu globální konfigurace platné pro všechny repozitáře.

Settings Dialog

Okno TortoiseHg Settings

Nejprve vybereme kartu Commit a zadáme jméno v poli Jméno uživatele.

Poznámka

Pokud nezadáme uživatelské jméno nyní, budeme na něj tázáni později, až poprvé použijeme příkaz commit.

Poznámka

Pro formátování uživatelského jména není pevné pravidlo ale obvykle se používá následující forma:

Celé Jméno <email>

například

Donald Duck <donaldduck@example.net>

Emailová adresa je při prohlížení změn odtržena a vestavěný webový server emailovou adresu zakryje v rámci prevence proti spamu.

Dále vybereme katru TortoiseHg a v ní Nástroj pro sloučení. V rozvinovacím seznamu nalezneme všechny slučovací nástroje nalezené v programovém vybavení počítače (kdiff3 je poskytnut instalátorem pro Windows) a řadu interních způsobů sloučení. Vybereme si oblíbený nástroj pro slučování.

Pokud chceme, aby TortoiseHg používal námi vybraný slučovací nástroj také pro zobrazení diffů, necháme položku Nástroj pro sloučení neurčenu. Jinak si v rozvinovacím seznamu vybereme z nabízených nástrojů.

Pokud nám v uvedených položkách není nabídnuta žádná volba, musíme instalovat nástroj, který je podporován v mergetools.rc nebo si nakonfigurovat nástroj vlastní.

Poznámka

Při instalaci TortoiseHg ze zdroje, je nutné nějakým způsobem přidat soubor contrib/mergetools.ini do cesty HGRC. Možný způsob je připojit jej ze souboru ~/.hgrc.

Neostýchejte se konfigurovat i další položky globálního nastavení. Budeme je moci později přepsat v lokální konfiguraci repozitáře.

Nastavené změny potvrdíme a okno zavřeme tlačítkem OK.

Poznámka

Většina změn nastavení TortoiseHg se projeví okamžitě ale povolení nebo zakázání extenzí obvykle vyžadují restart.

Status souboru

Soubory, obsluhované Mercurialem, mají různý vztah k zapisované historii. Tento vztah je vyjádřen jako status souboru příslušným označením:

  • A (added) přidaný do komitu - příkazem hg add
  • M (modified) změněný
  • I (ignored) ignorovaný, uvedený v seznamu .hgignore
  • ! (missing) postrádaný, většinou ručně smazaný
  • R (removed) odebraný - příkazem hg remove
  • ? (unknown) neznámý, přidaný do repozitória ručně
  • C (clean) čistý, beze změn

Vytvoření repozitória a repozitáře

Jak bylo již uvedeno v Předmluvě (odst. 1.7), budeme z didaktických důvodů rozlišovat mezi repozitářem a repozitóriem. Za repozitář budeme považovat složku .hg, za repozitórium její kořenový adresář.

Repozitórium můžeme vytvořit z existující složky, kde umístíme repozitář, nebo vytvoříme složku repozitória i repozitáře současně.

Můžeme si vybrat jeden ze tří způsobů:

Verpánek: File > Nový repozitář…

Průzkumník: TortoiseHg > Vytvořit repozitář z kontextového menu

Příkaz: thg init

Repository Init dialog

Dialogové okno pro vytvoření repozitáře či repozitória

Je dobré ponechat volbu Vytvořit specifické soubory (.hgignore, …) zatrženou a nezatrhávat Vytvořit repozitář kompatibilní s Mercurialem < 1.7 pokud k tomu nemáme pádný důvod.

Po stisku tlačítka Vytvořit, vytvoří Mercurial v našem repozitóriu složku repozitáře .hg. Zde si program ukládá všechna verzovaná data. Se složkou .hg nikdy přímo nepracujeme. Při zadávání příkazů se odkazujeme na repozitórium.

Nové repozitórium se také přidá do Seznamu repozitářů , pokud tuto operaci provedeme z Verpánku. Nezařazená repozitória můžete přidat do Seznamu repozitářů výběrem File > Otevřít repozitář… nebo je můžete přetáhnout z Průzkumníka.

Poznámka

Mezi právě aktuálními revizemi a repozitóriem existuje tajemná symbióza. Jak později poznáme, mění se obsah repozitória podle aktuálně nastavené revize. Ponecháme-li aktuální starší revizi, můžeme případné nověji přidané soubory v Průzkumníku Windows (tedy v repozitóriu) nevidět!

Varování

Ručně editovat soubory ve složce .hg je nebezpečné, může dojít k poškození repozitáře. Jedinou výjimkou je konfigurační soubor .hg/hgrc.

Přidávání souborů

Nyní je třeba aplikaci Mercurial sdělit, které soubory mají být sledovány. Lze to provést více způsoby:

  1. Verpánek: ikonou Commit otevřeme úkonovou kartu, pravým poklepem zvýrazníme vybraný soubor a z kontextového menu vybereme Add . To změní status souboru na ‚A‘ a po zatržení nabídky barva názvu zezelená.
  2. Explorer: vybereme TortoiseHg > Přidat soubory… v kontextovém menu vybraného souboru. Otevře se okno pro zadání výběru a potvrzení operace add. Stejným způsobem lze vybrat nabídku TortoiseHg > Status souboru. V otevřeném dialogovém okně můžeme vybrat zamýšlené soubory.
  3. Příkazem: thg status
  4. Přidávání souborů v samostatném kroku můžeme přeskočit a přidat je implicitně v rámci příkazu TortoiseHg > Commit…. Otevře se podobné dialogové okno jako u volby Status souboru. Vybereme zařazovaný, dosud nesledovaný soubor a volbu potvrdíme tlačítkem Commit.

Ignorování souborů

Ve svých repozitóriích můžeme mít z různých důvodů soubory, jež nechceme sledovat. Tyto soubory lze označit jako ignorované a to rovněž několika způsoby.

  1. Verpánek: aktivujte panel Commit, na zvýrazněném souboru vyvolejte kontextové menu a vyberte Ignorovat….
  2. Explorer: vyberte TortoiseHg > Ignorované soubory
  3. Příkazem thg hgignore otevřeme dialogové okno pro filtrování souborů.

Pro vybraný soubor určíte druh filtru (Glob nebo Regexp) a zadáte Přidat. Změny filtru ignore se projeví okamžitě.

Poznámka

Soubor .hgignore, obsažený repozitóriu, je normálně sledován (checked in).

Poznámka

Je dobré, nemít v repozitóriu mnoho neznámých souborů, protože se potom snadno zapomene přidat důležité nové soubory. Doporučuje se udržovat soubor .hgignore v aktuálním stavu.

Commit

Předání změn do repozitáře provedete následujícím způsobem:

Verpánek: Poklepem na pracovní adresář se otevře panel pro předání změn (commit), případně tento panel můžete aktivovat výběrem ikony s fajfkou.

Explorer: Pravým poklepem kdekoliv ve složce otevřete kontextové menu a vyberete dialogové okno TortoiseHg > Commit….

Příkaz: thg commit

Napíšete předávací zprávu, vyberete soubory, které chcete předat a přikážete Commit. Předchozí předávací zpráva bude uvedena v roletkovém seznamu; v případě potřeby ji lze s úpravou použít.

Commit dialog

Zadávací okno TortoiseHg > Commit

Sdílení repozitářů

Mercurial podporuje mnoho různých modelů spolupráce. Tento odstavec popisuje pouze jeden z nich: model s centrálním repozitářem.

Na místě, kam mají přístup všichni členové skupiny se vytvoří centrální repozitář, kam všichni posílají své změny, přičemž jeden člen kolektivu má za úkol na tento repozitář dohlížet.

Tento centrální repozitář může vzniknout jako nový repozitář nebo jako kopie (klon) již někde jinde vytvořeného repozitáře. Klonování repozitáře lze provést trojím způsobem:

Verpánek: Z menu vyberete File > Klonovat repozitář…

Explorer: Z kontextového menu vyberete TortoiseHg > Klonovat…

Příkaz: :command::thg clone.

Potom zadáte cestu k destinaci a zavelíte Klonovat.

Clone dialog

Okno akce Clone

Vytváříte-li centrální repozitář klonováním, potom nemusíte kopírovat celý obsah repozitória. Zatržením volby Neaktualizovat nový pracovní adresář zajistíte kopírování pouze složky .hg, která obsahuje úplný přehled revizí projektu.

Další členové skupiny si tento centrální repozitář naklonují již s nezatrženou volbou Neaktualizovat nový pracovní adresář. Tím si do svého lokálního repozitoria přenesou i pracovní soubory.

Klonováním vzniká příbuzenský vztah mezi repozitáři. Akce pull a commit lze provádět pouze mezi příbuznými repozitáři. Příbuzný repozitář na jiném počítači je repozitář vzdálený (remote).

Práce s repozitářem

Předpokládejme, že jste provedl nějaké změny. Zda máte v (pomyslném) pracovním adresáři nepředané (nekomitované) změny zjistíte snadno:

Verpánek: V panelu úlohy Commit prohlédneme seznam souborů na levé straně.

Šifry A (přidaný - zelená) a M (upravený - modrá) označují soubory, které lze komitovat přímo. Soubory označené ? (neznámý - fialková), ! (postrádaný - červená) či R (odebraný - červená) nutno nejprve přidat či vrátit do sledování.

Spodní pole vpravo karty Commit vám zobrazí i změny v jednotlivých souborech nebo můžete použít svůj nástroj pro zobrazování rozdílů (kdiff3). V Mercurialu lze provést řadu komitů předtím, než se rozhodnete pro sdílení svých změn s repozitářem centrálním.

Explorer: Složky a soubory vašeho repozitória jsou označeny jednou z překryvných ikon. Ty vám napoví, v jakém stavu se ten či onen soubor nebo složka nachází.

Overlay Icons

Překryvné ikony

Příkazový řádek: Příkazem thg commit vyvoláte dialogové okno.

Jste-li připraven zveřejnit své změny, provedete následující:

  1. Předáte změny do svého lokálního repozitáře (provedete komit).
  2. Aktivujete kartu pro synchronizaci, vyberete cestu k centrálnímu repozitáři a stisknete tlačítko Pull, čímž vydáte příkaz ke stažení možných změn z tohoto repozitáře.
  3. Byly-li nějaké changesety staženy, provedete jejich případné sloučení s vašimi lokálními změnami a provedete jejich komit do repozitáře.

V přehledu changesetů zviditelníte ten, se kterým chcete sloučení provést, aktivujete kontextové menu a vyberete Merge with local…. V dialogovém okně pro sloučení stisknete Sloučit (merge) a posléze Commit. 4. Sloučenou práci prověříte svým testovacím postupem. 5. V kartě pro synchronizaci vyberete cestu k centrálnímu repozitáři a pošlete do něho své změny tlačítkem Push.

Poznámka

Sloučení lze bezpečně v případě potřeby opakovat.

Spolupráce prostřednictvím Mercurialu je snadná, rychlá a produktivní. Více o Mercurialu na jeho stránkách wiki.

TortoiseHg prakticky

Obecné vlastnosti

Tyto vlastnosti jsou společné mnoha nástrojům TortoiseHg a jsou tedy dokumentovány pouze na tomto místě.

Zobrazení rozdílů

Visual Diff Window

Okno pro zobrazení rozdílů pro changeset, který má dva rodiče (p1, p2)

V TortoiseHg 1.0 byla vizuální (externí) diffová infrastruktura) zcela přepracována. Nový systém používá popisy nástrojů v mergetools.rc k detekci nejběžnějších diffových nástrojů ve vašem počítači (včetně KDiff3, který je dodáván s instalací TortoiseHg) a k výběru nejvhodnějšího z nich.

Pokud si uživatel vybral slučovací nástroj (Setting > TortoiseHg > Nástroj pro sloučení), je tento nástroj použit a výběrový proces je vynechán. Uživatel si ale stejně může vybrat separátní nástroj (TortoiseHg > Nástroj Visual Diff) pro zobrazení diffů.

Konfigurační soubor slučovacího nástroje obsahuje optimální příkazové řádky pro každý nástroj, takže další konfigurace uživatelem není potřebná. Stačí si vybrat žádaný nástroj nebo přijmout implicitní nastavení.

Systém vizuálních diffů použije každou existující konfiguraci extdiff, kterou najde. Protože ale extdiff ještě donedávna nepodporoval ‚three way‘ diffové argumenty a stále ještě nepodporuje štítkové (label) argumenty, bude pro vás patrně nejlepší, když zakážete nebo smažete všechny konfigurace extdiff, které máte.

Vizuální diffový systém použije přímo vybraný diffový nástroj, pokud prováděná akce nepožaduje použití dialogového okna (TortoiseHg) pro vizuální diff. Jde o tyto situace:

  1. Výběr porovnávaných souborů vyžaduje více nástrojů
  2. Vybraný nástroj štěpí oddělené procesy na pozadí
  3. Vybraný nástroj nepodporuje požadované diffy adresářů
  4. Vybraný nástroj nepodporuje ‚three way‘ porovnávání
  5. Změny souborů zahrnují přejmenování nebo kopie

Je-li použito dialogové okno pro vizuální diff, jsou dočasné soubory smazány až po ukončení dialogu. Okno by tedy mělo zůstat otevřené, dokud nezavřete všechny své instance diffových nástrojů. Je-li váš diffový nástroj spuštěn přímo, dočasné soubory se smažou při zavření nástroje.

Je-li váš diffový nástroj spuštěn přímo pro porovnání pracovní kopie, bude se srovnávat přímo s pracovním souborem, takže jej můžete editovat zevnitř diffového nástroje. Porovnáváte-li více souborů, pořídí si systém vizuálního diffu snímek souborů pracovní kopie a zaznamená jejich původní velikosti a časové údaje (timestamps). Při zavření diffového nástroje porovná systém velikosti a časy a překopíruje upravené soubory zpět do původních pracovních kopií. Tímto způsobem můžete vždy upravovat soubory vaší pracovní kopie ze svého nástroje pro vizuální diff i při porovnávání adresářů.

Je-li dialogové okno pro vizuální diff použito k porovnání souborů pracovní kopie, provádí se diff vždy přímo proti souborům pracovní kopie, neboť se vždy pracuje s jedním souborem v daném okamžiku.

Přidávání nástrojů

Máte-li nainstalovaný diffový nástroj, který není podporován aplikací TortoiseHg, můžete pro něj vytvořit konfiguraci v souboru Merurial.ini. Viz dokumentace Hg. Poté přidáte extra klíče, které pro vizuální diff TortoiseHg používá:

diffargs:  argumenty pro dvojné komparace
diff3args: argumenty pro trojné komparace
dirdiff:   tento nástroj podporuje dvojné komparace
dir3diff:  tento nástroj podporuje trojné kopmarace

Při sestavování argumentů pro příkazovový řádek můžeme použít následující proměnné:

$parent1:  soubor nebo složka z revize prvního rodiče
$parent2:  soubor nebo složka z revize druhého rodiče
$child:    soubor nebo složka z porovnávané revize
$parent:   synonym pro $parent1

$plabel1:  symbolický název revize prvního rodiče
$plabel2:  symbolický název revize druhého rodiče
$clabel:   symbolický název pro porovnávané revize

$parent2 a $ancestor mají ovšem smysl pouze tehdy, jsou-li použity jako argumenty trojného diffu pro zobrazení sloučených changesetů. Nemůže-li váš diffový nástroj použít rozumným způsobem revizi předka, je bezpečnější vypustit jej z příkazového řádku pro diff3args.

Poznámka

Ve Windows může parametr executable použít proměnné prostředí s použitím syntaxe ${ProgramFiles}

Pokud tuto konfiguraci neprovedeme, implicitní hodnota diffargs je ‚$parent $child‘. Implicitní hodnota diffargs3 je „“, což naznačuje, že vizuální diffový nástroj nemůže provádět trojné komparace.

Vytvoříte-li novou konfiguraci nástroje pro vizuální diff nebo vylepšíte stávající, pošlete prosím mail našemu vývojovému oddělení pro možné zahrnutí do příštího vydání programu.

Diffy slov

Instalační program TortoiseHg pro Windows nyní obsahuje skripty aplikace TortoiseSVN pro porovnávání (a někdy sloučení) dokumentů v mnoha binárních formátech. Tyto jsou nastaveny v souboru mergepatterns.rc jako ovladače pro obvyklé extenze souborů každého binárního formátu, takže není zapotřebí zásahu uživatele.

Pro podporu výběru nástrojů, vycházejícího z přípony souboru, přidal TortoiseHg podporu pro sekci [diff-patterns], která je ekvivalentní k sekci Mercurialu merge-patterns.

Integrace s průzkumníkem Windows

Kontextové nabídky

Přístup k příkazům TortoiseHg je možný pomocí kontextového menu v průzkumníku Windows a dalších aplikacích, které používají standardní dialogy File/Open. Zde je kontextové menu pro složku repozitória:

Context menu

TortoiseHg poskytuje dialogy pro většinu pravidelně používaných příkazů aplikace Mercurial. Méně používané a nově přidané příkazy jsou ve Windows přístupné z CLI (cmd.exe) ve Windows.

Překryvné ikonky

TortoiseHg sdílí překryvné ikony s TortoiseSVN (verze 1.5.x nebo pozdější) a s jinými projekty „Tortoise“ prostřednictvím TortoiseOverlays, což je další projekt vytvořený skupinou TortoiseSVN.

Overlay icons

Překryvné ikony souborů přidaných, sledovaných a změněných

Kontextové menu obsahuje volbu Aktualizovat ikony která přinutí aplikaci TortoiseHg oživit ikony v právě rozbaleném repozitáři nebo ve složce s repozitáři. Ikona hlavního panelu zezelená a ikony v adresáři se změní v otazníky ve chvíli, kdy probíhá tato aktualizace.

Konfigurace kontextové nabídky

Ovladač překryvů a kontextové nabídky jsou konfigurovatelné. V ploše otevřeného adresáře nebo dokonce v ploše obrazovky provedeme pravý poklep a vybereme TortoiseHg > Nastavení kontext. nabídek.

Na kartě „Kontextové“ můžeme jednotlivé volby přesouvat ze submenu do hlavního menu a obráceně.

Shell Configuration dialog

Na kartě „Ikony“ upravíme nastavení, týkající se překryvných ikon a zobrazení ‚Serveru překryvných ikon‘ v hlavním panelu Windows.

Shell Configuration dialog, Icons tab
Překryvy povoleny
Umožnit zobrazení překryvných ikon na složkách a souborech v repozitóriu; implicitně: ano
Pouze lokální disky
Zobrazení ikon pouze na lokálních discích. Zobrazení ikon na vzdálených složkách a souborech je náročnější na výkon počítače; implicitně: nezatrženo
Povolené ovladače překryvů:
Tato uživatelská nastavení poskytují možnost vypnout ovladače překryvných ikon ve sdílených komponentách TortoiseOverlays. Tyto komponenty jsou sdíleny všemi aplikacemi Tortoise (TortoiseHg, TortoiseSVN, atd) ve snaze vyhnout se registrování velkého množství ikonových slotů. Všechny tyto aplikace používají stejnou sadu ikonových slotů.
Celkový počet dostupných slotů ve Windows je poměrně omezený a liší podle verzí Windows. Například u Windows 7 je k disposici pouze 8 volných slotů pro ovladače překryvných ikon. V tomto editačním poli lze nepotřebné ovladače ikon vypnout a tím snížit jejich celkovou spotřebu. Zvýší se tím šance, že důležité ovladače jako Normal (zelená značka) nebo Modified (červený vykřičník) obdrží svůj ikonový slot, i když je v počítači registrováno příliš mnoho ovladačů. Velmi se doporučuje zakázat nepoužívané ovladače, jako je Uzamčeno, Jen ke čtení, Ignorováno, Smazáno - pokud víme, že je nepoužívá jiná aplikace Tortoise. Určitě povolíme ovladače pro Přidáno a Neverzováno, protože jsou v TortoiseHg používány. Implicitně jsou všechny volby zatrženy.

Varování

Nastavení v poli „Povolené ovladače překryvů“ ovlivňují všechny aplikace Tortoise. Aby se změny nastavení v tomto poli projevily, je požadován logoff/login.

Hlavní panel

Pro zobrazení ikony serveru překryvných ikon v dolní nástrojové liště Windows zatrhneme volbu „Zobrazit ikonu“. Volba „Zvýraznit ikonu“ způsobí, že tato ikona změní barvu (zezelená), když ikonový server aktualizuje cache soubory (.hgdirstate a .hgthgstatus) v repozitáři.

Překryvné ikony lze selektivně zakázat pro určitý repozitář v souboru .hgthgstatus zápisem jediného řádku:

@@noicons

Integrace s desktopem GNOME

TortoiseHg umožňuje integraci konzoly s pracovní plochou GNOME prostřednictvím pluginu nautilus-python. Pokud jste instaloval TortoiseHg z instalačního paketu, pak nejspíš máte tuto extenzi již nastavenou. Pokud ne, pročtěte si pokyny na našich stránkách Wiki.

Protože extenze nautilu nemá své vlastní GUI pro správu překryvných ikon a kontextových menu, podporuje povýšení příkazů do nejvyššího menu. Je zapotřebí upravit soubor ~/hgrc a přidat řádky, jako jsou tyto:

[tortoisehg]
promoteditems = commit, log, synch
Nautilus screenshot

GNOME/Nautilus screenshot

Byť většinou užitečné, mohou překryvné ikony způsobit zpomalení výkonu u velkých repozitářů. Tuto funkci lze vyřadit úpravou konfiguračního souboru ~/.hgrc:

[tortoisehg]
overlayicons = false

Verpánek

Verpánek neboli Workbench je primární aplikace TortoiseHg. Umožňuje procházet lokálními repozitáři, předávat (commit) změny do repozitáře , provádět vyhledávání a synchronizaci s jinými repozitáři a vykonávat různé provozní úlohy. Téměř každá procedura Mercurialu je dostupná z Verpánku. Všechna tlačítka pracují s aktuálním repozitářem.

Workbench

V základní minimalistické konfiguraci (s vypnutými lištami) má okno Verpánku pouze jedno pole a to Přehled revizí na jedné či více kartách, jejichž ouška jsou řazena v pruhu nad polem seznamu.

Mezi pruh hlavního menu (Soubor, Zobrazit, Repozitář, Help) a Přehled revizí lze vložit nástrojové lišty - Editovací (Edit Toolbar), Parkovací (Dock Toolbar), Úkonovou (Task Toolbar), Synchronizační (Sync Toolbar) a Uživatelskou (Custom Toolbar). Složení jednotlivých lišt bude uvedeno níže. Lišty lze aktivovat/deaktivovat výběrem z kontextové nabídky, vytvořené poklepem „pravé“ myši v pruhu hlavního menu nebo výběrem ze sekvence Zobrazit > Nástrojové lišty.

Parkovací lišta obsahuje ikony tří procedur - Otevřít seznam repozitářů, Otevřít frontu oprávek, Otevřít konzolu. První dvě procedury se zobrazují v samostatném přemistitelném okně. Okno poslední procedury je nepřemistitelné.

Výběr ze sekvence Zobrazit > Zobrazit úkonovou plochu otevře strukturovanou pracovní plochu, jejíž konfigurace se mění podle právě zvoleného úkonu v Úkonové liště (Podrobnosti revizí, Commit, Synchronizovat a Hledat ).

Tuto úkonovou plochu lze opatřit samostatnou lištou s oušky karet, obsahujících úkony z Úkonové lišty a to sekvencí Soubor > Settings > Verpánek –> Poloha úkonových karet (east, west, off).

Úkonovou plochu lze překrýt otevřením okna konzoly pro reflexi nebo zadávání příkazů aplikace hg nebo thg. Použijeme k tomu sekvenci Zobrazit > Otevřít konzolu, nebo ikonu v editovací liště.

Další užitečné zpestření pracovní plochy Verpánku poskytuje volba Zobrazit > Otevřít seznam repozitářů, jež otevře okno se seznamem repozitářů vlevo od seznamu revizí a úkonové plochy,jež lze tažením přemístit i mimo plochu Verpánku.

Hlavní panely Verpánku jsou tedy tyto:

Přehled revizí
Panel pod nástrojovými lištami v záhlaví s výčtem revizí vybraného repozitáře. Ve sloupcích jsou uváděny základní informace o každém changesetu neboli revizi repozitáře. Lze si nastavit, které sloupce mají být viditelné (Zobrazit > Vybrat sloupce přehledu revizí) a v jakém pořadí.
Seznam repozitářů neboli repozitórií
Lze aktivovat ikonou nebo volbou Zobrazit > Zobrazit seznam repozitářů. Volba Zobrazit > Nastavení seznamu repozitářů > Show Paths umožní zobrazení nejenom jmen repozitářů ale i cest k nim.
Úkonová plocha

Plocha pod přehledem revizí s poměnným obsahem. Nástroje úkonové plochy lze aktivovat ze třech míst:

  • jako položku roletky Zobrazit –> Podrobnosti revize, Comit, Synchronizovat, Hledat
  • výběrem ikony v Úkonové liště –> dtto
  • výběrem ouška na okraji Úkonové plochy - zobrazení oušek lze zapnout/vypnout v prostředí File > Settings > Verpánek > Úkonová lišta
Výstupní konzola (Output Log)
Tento nepřemistitelný panel, který vyvoláme tlačítkem s ikonou „Log“ nebo výběrem Zobrazit > Otevřít konzolu, poskytuje uživateli informaci o příkazech Mercurialu, které byly provedeny během stávající seance. Lze jej také použít jako příkazový řádek pro přímé zadávání příkazů Mercurialu. V určitých situacích také zobrazuje chybová hlášení. Okno panelu se také vypne zavřením Verpánku.

Hlavní menu

Standardní lišta s roletkovými nabídkami pro přístup k nástrojům a pro spouštění různých úloh.

Soubor

File menu

Zobrazit

View menu

Repozitář

Repository menu
Help
Obsahuje info o programu a popis Verpánku.

Editovací lišta

Edit Toolbar
Obnovit (refresh) aktuální repozitář
Znovu načíst přehled revizí aktuálního repozitáře.
Stop:
Zastavit probíhající operaci.
Přejít k aktuální revizi:
Přejít k revizi, která je právě aktuální.
Přejít k jiné revizi:
Přejít k libovolné určené revizi.
Zpět:
Vrátit se k předchozí revizi.
Vpřed
Přejít k předchozí revizi.
Lišta filtru se sadami revizí nebo větvemi
Aktivovat nástrojovou lištu pro editaci filtru.
Aktualizovat pracovní adresář
Aktualizovat pracovní adresář k označené revizi.
Sloučit (merge)
Sloučit s dalším čelem vybrané větve.

Parkovací lišta

Tato lišta zobrazí nebo skryje původně přemistitelné panely Verpánku. Panel konzoly je aktuálně nepřemistitelný.

Dock Toolbar
Otevřít seznam repozitářů
Ve skutečnosti jde o seznam repozitórií - kořenových adresářů se složkami .hg
Otevřít frontu oprávek
(Show Patch Queue)
Otevřít konzolu
Otevřít konzolu (output log), zobrazující výstup z příkazů Mercuriálu, které byly zadány buď některým nástrojem TortoiseHg nebo zadány v konzole.

Úkonová lišta

Task Toolbar

Lišta je sestavena z ikon, které aktivují úkonové karty v úkonové ploše: Podrobnosti revize, Commit, Hledat a Synchronizovat.

Rozdělení úkonové plochy se mění v závislosti na volbě úkonové karty. Tuto volbu lze realizovat i výběrem ouška karty na okraji úkonové plochy, pokud je viditelnost oušek aktivována.

Podrobnosti revizí
Pracovní plocha této karty se zkládá ze třech polí:
  • Rozbalovací plochy (+/-) Changeset obsahuje údaje o číslu revize, zkrácený heš, souhrnný text zprávy komitu, jméno a email komitenta, datum komitu, informace o rodičích a dětech
  • Textového pole se souhrnným i úplným textem zprávy komitu
  • Diffové zobrazení změn vybraného souboru, uvedeného v textovém poli vlevo.
Revision Details
Commit
Zde je možné přidávat nové soubory a provádět komit do repozitáře. Až na informaci o changesetu je rozdělení tohoto pole obdobné, jako u Podrobnosti revizí.
Commit Task Tab
Synchronizovat
Umožňuje podrobné nastavení cesty ke vzdálenému repozitáři. Karta obsahuje úplnou nabídku synchronizačních úloh.
Synchronise Task Tab
Hledat
Slouží pro vyhledávání zadaného textu v souboru.
Search Task Tab

Mezi vybranou revizí nebo oprávkou v Přehledu revizí a úkonovou kartou Commit či Podrobnosti revizí existují tyto relace:

  • Poklep na revizi „Pracovní adresář“ aktivuje kartu s úlohou Commit.
  • Poklep na kteroukoliv jinou revizi aktivuje kartu Podrobnosti revizí.

Synchronizační lišta

Sync Toolbar

Sync toolbar

Slouží k synchronizaci lokálního repozitáře s jinými repozitáři. Obsahuje čtyři ikony pro úkony Incoming, Pull, Outgoing, Push. Popisy těchto úkonů jsou uvedeny v kapitole 5.9 Synchronizace.

Pracovní lišta filtru

Filter Toolbar

Tato lišta umožňuje rychlé filtrování vybraných changesetů. Je založena na proceduře Revision Sets Mercuriálu. Určení skladby revizí viz hg.1.html#revsets. Zobrazení této lišty aktivujeme buď tlačítkem s ikonou v editovací liště nebo přepínačem Ctrl+S. Lišta obsahuje následující sadu procedur (zleva doprava):

Clear
Smaže aktuální dotaz (query). Vlastně anuluje zadání filtru.
Roletka
Zde lze zapsat filtrovací podmínku do textového pole roletkového seznamu, obsahujícího předchozí filtrovací podmínky
Aktivovat průzkum
Aplikuje dotaz na zadanou sadu revizí.
Otevřít editor průzkumu
Otvírá dialogové okno „Revision Set Query“. Zde můžete upřesnit svůj dotaz.
Smazat vybraný dotaz
Smaže zadaný vyhledávací dotaz (query).
Filtr
Přepínač pro aktivaci filtru. Aktivní filtr prosévá changesety a barevně označí ty, které podmínce nevyhovují.
Ukázat / Skrýt
Ukázat/skrýt skryté changesety
Graft
Přepínač viditelnosti gráftu
Větev
Výběrový seznam s možností zadat typ větve - aktivní, uzavřené, všechny
Custom Filter Combo
Rozvinovací seznam jednotlivých typů větví (stable, default, hgtk).

V situaci, kdy je zobrazován seznam příchozích changesetů, vynoří se na počátku filtrovací lišty dvě tlačítka:

Accept
Přijmout (pull) changesety z prohlíženého svazku.
Reject
Odmítnout changesety z prohlíženého svazku.

Verpánek se pokusí nalézt zadanou vyhledávací frázi v repozitáři, porovnávaje ji s tagem, záložkou, názvem větve, hešem changesetu nebo s číslem revize. Není-li žádná shoda nalezena, zjistí Verpánek, zda fráze obsahuje závorky. Pokud ne, předpokládá Verpánek, že fráze je klíčovým slovem a provede hledání keyword (). Jsou-li závorky zjištěny, předpokládá Verpánek, že fráze je specifikací sady revizí a pokusí se sadu řešit.

Potřebujete-li provést hledání s klíčovým slovem, které obsahuje závorky, použijte příkaz keyword („fráze(foo)“).

Graf revizí

Sloupec s grafem zobrazuje vztah dítě-rodič mezi revizemi. Tento sloupec se automaticky zvětšuje podle počtu čar.

Výkonové implikace

Některá nastavení Verpánku mohou mít u velkých repozitářů vliv na výkon.

View > Vybrat sloupce záznamu …
Povolení sloupce Změny může být náročné na přepočet repozitářů s rozsáhlými pracovními kopiemi, což může vést ke zpomalení u rolování a oživení.
Vew > Načíst všechny revize
Normálně se při rolování revizemi postupně načítají dávky changesetů, což může někdy způsobovat trhavé zobrazení. Načtení všech changesetů najednou může vést k ‚hladšímu‘ zobrazení.

Kontextová menu revizí

Pravý poklep na revizi v Přehledu revizí vyvolá různá kontextová menu v závislosti na počtu vybraných revizí. Kontextová menu se mohou také lišit v závislosti na typu vybrané revize (pracovní adresář, normální revize, oprávka mq). Dále uvádíme seznam všech existujících kontextových menu.

Vybrána jen jedna revize (nikoliv pracovní adresář)

Single revision context menu
Aktualizovat…
Aktualizovat pracovní adresář k označené revizi. Otevře se dialogové okno s podrobnostmi o aktualizaci.
Diff to parent…
Zobrazí změny mezi aktuální a rodičovskou revizí v nastavenem diffovém nástroji.
Diff to local…
Zobrazí změny mezi vybranou revizí a pracovním adresářem.
Podrobnosti revize
Otevře okno Manifest se zobrazením všech složek a souborů vybrané revize včetně informací o changesetu a zprávy komitu
Filtrovat podle
Ancestors and Descendants, Author, Branch, More options… Nabídka deseti kriterií: Shrnutí, Popis, Autor, Datum, Soubory, Obsah dílů, Stav subrepozitáře, Větev, Rodiče, Fáze.
Merge with local…
Otevře okno „Merge“ pro sloučení vybrané revize s lokální revizí pracovního adresáře.
Tag…
Otevře okno pro zadání názvu vytvářeného tagu pro vybranou revizi.
Bookmark…
Otevře okno pro zadání nazvu záložky pro vybranou revizi.
Backout…
Otevře okno „Backout“ pro anulování vybrané revize.
Revert All Files…
U všech souborů vyřadí nekomitované změny a ponechá soubory v nezměněném stavu.
Copy Hash
Zkopíruje úplný heš vybrané revize do schránky. – V operačním systému X11 se do primárního výběru při označení revize automaticky kopíruje krátký heš; vlepí se stlačením prostředního tlačítka myši.
Export >
Export patch
Generuje oprávkový soubor, obsahující změny revize.
Email patch…
Otevře okno pro odeslání emailu se změnami revize.
Archive…
Otevře okno pro archivaci revize s možností generovat záložní kopii revize.
Bundle revision and descendants…
Vytvoří svazek a uloží jej do repozitória (kořenové složky repozitáře).
Copy Patch
Zkopíruje změny revize do schránky. Přístupné jen při povolené extenzi MQ
Změna fáze …
Nabídne výběr fáze: public, draft, secret
Graft to local…
Otevře dialog Graft pro zkopírování vybrané revize.
Modify history >

Přístupné jen při povolené extenzi MQ:

Unapply Patch
Zrušit oprávku a vrátit se k rodiči.
Import to MQ
Importovat vybranou revizi do fronty oprávek.
Finish Patch
Přemění oprávku MQ na normální changeset.
Rename Patch
Přejmenovat oprávku
MQ Options
Podrobnější nastavení pro extenzi MQ.
Rebase
Přeskupit changeset včetně potomků k jiné destinaci
Strip
Odstranit vybranou revizi a všechny její potomky z repozitáře. [1]

Vybrány dvě revize

Visual diff…
Zobrazí vybrané revize v diffovém prohlížeči.
Export diff…
Otevře okno „Psát diffový soubor“.
Export selected…
Pro zadané revize vytvoří oprávky (patches) a exportuje je do zadané složky.
Email selected…
Otevře okno pro odeslání vybraných revizí.
Copy selected as patch…
Z vybraných revizí vytvoří oprávku a uloží ji do schránky.
Export DAG range…
Pro každou revizi vybraného rozsahu vytvoří oprávkový soubor a uloží je v zadaném místě.
Email DAG range…
Otevře okno pro odeslání vybraného rozsahu changesetů ve formě oprávek (patches).
Bundle DAG range…
Ze zadaného rozsahu vytvoří svazek oprávek a uloží je jako jediný soubor.
Bisect - Good, Bad…
TODO, viz odstavec bisect níže
Bisect - Bad, Good…
TODO, viz odstavec bisect níže
Komprimovat historii …
Otevře okno, v němž lze zkomprimovat zadaný rozsah revizí.
Rebase …
Přeskupit changeset s potomky k jiné destinaci.
Přejít ke společnému předkovi…
V přehledu revizí přejde ke společnému předkovi obou vybraných revizí.
Filtrovat podle >
Ancestors and Descendants, Author, Branch, Více možností –> Zadání dalších parametrů pro úlohu „Nalézt shody u vybraných revizí“.
Gráftovat výběr k aktuální revizi …
Přenést vybrané revize do pracovního adresáře.

Vybrány více než dvě revize

Export selected…
Vytvoří oprávkové soubory pro všechny vybrané revize.
Email selected…
Otevře okno pro odeslání vybraných changesetů.
Copy selected as patch
Z vybraných revizí vytvoří oprávky a uloží je do schránky.
Přejít ke společnému předkovi
viz
Filtrovat podle >
Ancestors and Descendants, Author, Branch, Více možností –> viz
Gráftovat výběr k aktuální …
Přenést vybrané revize do pracovního adresáře.
[1]Tento příkaz uloží odtržené revize do svazku souborů, které mohou být později znovu použity. Viz také Editing History

Kontextová menu souboru

Pravým poklepem na soubor v seznamu souborů aktuální revize vyvoláme kontextové menu pro vybraný soubor:

Diff to Parent
Zobrazí změny mezi aktuální a rodičovskou verzí souboru v nastavenem diffovém nástroji.
Diff to Local
Zobrazí rozdíly mezi aktuální a lokální verzí souboru.
Zobrazit verzi souboru
Otevře verzi souboru v nastaveném či vhodném textovém editoru [2].
Uložit verzi souboru
Uloží soubor do zadané složky
Edit Local
Otevře soubor v nastaveném či vhodném textovém editoru.
Open Local
Otevře soubor v nastaveném či vhodném textovém editoru.
Explore Local
Otevře nadřazenou složku zkoumaného souboru.
Copy Path
Zkopíruje cestu k souboru do schránky.
Vrátit k revizi
Vrátí soubor ke stavu označené revize [3].
Historie souboru
Ukáže revize, které měnily tento soubor [4].
Porovnat revize souboru
Otevře nové okno, kde lze porovnat kteroukoukoli revizi souboru s libovolnou jinou revizí.
Selektivní výběr
Otevře lištu výběrového filtru.
Seznam stavů

Tuto nabídku lze také realizovat jako kontextové menu při poklepu kdekoli v prázdném místě Seznamu souborů. Umožňuje nastavit viditelnost souborů v závislosti na jejich statusu: M upravený, A přidaný, R odebraný, C čistý, S subrepo. Volba „Prostý seznam“ ovlivňuje způsob prezentace názvů souborů. Přepínač „Manifest mode“ zařídí zobrazení celého obsahu repozitória, kromě složky .hg.

Tento přepínač je také přítomný jako ikona v levém horním rohu karty „Podrobnosti revizí“, spolu s textovým polem pro zadání filtru.

[2]File > Global Settings > TortoiseHg > Visual Editor
[3]Nový obsah se objeví jako lokální změna a musí být předána (committed) repozitáři.
[4]Ve které revizi byl soubor smazán se neukáže, protože to je jenom „vnějšková“ změna, která neovlivňuje historii souboru.

Pravý poklep na název souboru při aktivované úloze Commit vyvolá pro vybraný soubor odlišné kontextové menu:

Jde-li o upravené (M) soubory pracovního adresáře:

Diff to Parent
Otevře diffový nástroj a zobrazí texty s označenými změnami.
Copy Patch
Zkopíruje oprávku (patch) do schránky.
Edit Local
Otevře soubor ve vhodném textovém editoru.
Open Local
Otevře soubor v nastaveném textovém editoru.
Explore Local
Otevře repozitórium pro aktuální revizi.
Copy Path
Zkopíruje cestu k souboru do schránky.
Vrátit (revert)…
Otevře okno, kde lze diferencovaně rozhodnout o zrušení změn lokálního souboru (souboru pracovního adresáře).
Historie souboru …
Otevře okno se zobrazením změn v jednotlivých revizích.
Zapomenout (forget)
Vyřadit soubor ze sledování.
Označit / Odznačit
Vložit / odebrat zatržítko.
Kopírovat…
Kopírovat soubor do zadané destinace.
Přejmenovat…
Přejmenovat soubor.
Seznam stavů>
M, A, R, C, S, I, !(postrádaný), ?(neznámý)

Jde-li o neznámé (?) soubory pracovního adresáře:

V tomto případě se nabídka skládá z Edit Local, Open Local, Explore Local, Copy Path, Add, Označit, Odznačit, Seznam stavů - plus:

Změna názvu …
Otevře okno pro nalezení přejmenovaných souborů.
Ignorovat …
Otevře seznam ignorovaných souborů.
Smazat neverzované…
Smazat neverzované soubory.

Analýza zpráv komitů

V poli +/- Changeset na kartě Podrobnosti revizí jsou detekovány a podtrženy heše, adresy HTTP(s) a označení chybových zpráv, nalezené ve zprávách komitů. Tyto podtržené údaje jsou aktivní linky k changesetům v Přehledu revizí.

URL adresy HTTP a HTTPS se podobně změní na klikatelné linky které se otevřou ve vašem implicitním webovém prohlížeči.

Linky k Issue Tracker jsou povoleny, pokud je to nastaveno v sekci ‚tortoisehg‘ vašeho konfiguračního souboru. Protože lze nastavit pouze jeden issue tracker, je obvykle uváděn v souboru .hg/hgrc. Jsou dva klíče: issue.regex a issue.link. První definuje regex shody při výběru čísla problému, druhý definuje příkaz, který má být po určení čísla problému proveden.

Do issue.regex můžete vložit skupiny a odpovídajících {n} znaků (tokens) do issue.link (kde n je pozitivní celé číslo). {0} odkazuje na celý řetězec, porovnávaný issue.regexem, zatímco {1} odkazuje na první skupinu, atd. Nejsou-li v issue.linku nalezeny žádné {n} znaky, je připojen celý porovnávaný řetězec.

Příklady:

BitBucket:
issue.regex = #(\d+)\b
issue.link = https://bitbucket.org/<your project and repo>/issue/{1}/

Mercurial:
issue.regex = \bissue(\d+)\b
issue.link = https://bz.mercurial-scm.org/show_bug.cgi?id={1}

Výstupní konzola

V konzole, vestavěné do nepřemístitelného panelu (Output Log), lze spouštět příkazy Mercurialu (hg), TortoiseHg (thg), řadu speciálních příkazů a omezený počet příkazů konzoly. Příkazy se vždy provedou v kořenovém adresáři aktuálního repozitáře (repozitória). Prompt je aktualizován pro udržení souvislosti.

Začíná-li příkaz ‚hg‘, je proveden v prováděcím prostředí TortoiseHg; což znamená, že výstup je poslán do Output Log ale požadavky na vstupy jsou obslouženy dialogovými okny.

Začíná-li příkaz ‚thg‘, je zadaný příkaz proveden v novém okně pro tentýž proces. Například ‚thg ci‘ otevře nové okno s procedurou pro předání změn (commit) do aktuálního repozitáře.

Je-li zadaným příkazem ‚clear‘ nebo ‚cls‘ smaže se obsah konzoly.

Příkaz ‚exit‘ toto okno zavře.

Poznámka

Otherwise, the command line is forwarded to your platform’s default command shell with a limited execution context. There is no stdin while stdout and stderr are piped to the output log.

Klávesová navigace

Ctrl-P
Přesun do rodičovské revize pracovního adresáře
Ctrl-D
Zobrazit visuální diffy pro vybraný changeset nebo soubor
Ctrl-S
Přepínač mezi sadou revizí a lištou filtru.

Viz také KeySequences na stránkách Wiki.

Nastavitelné možnosti

Nastavitelné parametry Verpánku lze zadat v dialogu Soubor > Settings > Verpánek viz odstavec 6.1.2 kapitoly 6. Nastavení parametrů. Konkretní barvu u parametru „Zabarvení podle autora“ lze zadat v souboru Mercurial.ini:

[tortoisehg].
authorcolor.USERNAME = color

Spuštění z příkazového řádku

thg log [OPTIONS] [FILE]

aliases: history, explorer, workbench

workbench application

use „thg -v help log“ to show global options

Vytvoření nového repozitáře

Pro vytvoření nového repozitáře použijeme dialog Init. V kontextové nabídce průzkumníka Windows vybereme TortoiseHg… -> Vytvořit repozitář.

Init dialog

Vytvoření nového repozitáře

Destinace
Určení repozitória v němž bude repozitář vytvořen. Textové pole je implicitně zaplněno názvem aktuálního adresáře, takže jej nemusíme měnit, pokud jsme okno otevřeli ze správného místa. Zadáme-li dosud neexistující název, vytvoří se repozitórium nové i s novým repozitářem.
Vytvořit specifické soubory (.hgignore, …)
Při potvrzené volbě vytvoří TortoiseHg v pracovním adresáři prázdný soubor .hgignore pro seznam ignorovaných souborů. .
Vytvořit repo kompatibilní s Mercurialem <1.7
Při potvrzené volbě vytvoří TortoiseHg starší formát repozitáře. Pokud pro to nemáme vážné důvody (a víme dobře co činíme), pak tuto volbu ignorujeme.

Varování

Je nebezpečné ručně editovat soubory ve složce .hg, neboť může dojít k poškození repozitáře. Výjimkou je konfigurační soubor .hg/hgrc.

Spuštění z příkazového řádku

thg init

Skladba příkazu je:

thg init [DEST]

kde [DEST] je cesta k repozitóriu, v němž má být repozitář vytvořen.

Klonování repozitáře

Pro klonování repozitáře musíme spustit dialog „clone“. V kontextové nabídce průzkumníka Windows vybereme TortoiseHg -> Klonovat… nebo zadáme thg clone.

Clone dialog

Dialogové okno Klonovat

Zdroj
Cesta k repozitáři (nebo URL), který má být klonován. Pro výběr lokálního adresáře použijeme tlačítko Vyhledat….
Destinace
Cesta k cílovému adresáři, v němž bude vytvořena složka se stejným názvem jako zdrojový repozitář.

Pod rozšířenou nabídkou expandéru Možnosti nalezneme:

Klonovat k revizi
Můžeme omezit rozsah klonování až po zadanou revizi. Nebudou importovány ani tagy, vytvořené po této revizi.
Neaktualizovat nový pracovní adresář
Je-li zatrženo, bude nový pracovní adresář prázdný až na složku .hg. Tato volba je užitečná při vytváření centrálního nebo záložního repozitáře, kde se bude provádět pouze push a pull.
Použít protokol pull ke kopírování metadat
Nachází-li se zdroj i destinace ve stejném souborovém systému, snaží se Mercurial použít pevné odkazy (hardlinks). Některé souborové systémy, jako např. ASF, používají pevné odkazy nesprávně ale nehlásí chybu. Tuto volbu použijeme, chceme-li se vyhnout pevným odkazům .
Použít nekomprimovaný přenos
Pro použití nekomprimovaného transferu (rychlé v LAN).
Zahrnout frontu oprávek
Pro klonování repozitáře oprávek MQ spolu s hlavním repozitářem.
Použít proxy server
Pro použití proxy serveru, nastaveného v TortoiseHg… > Globální nastavení > Proxy. Volba je použitelná jen je-li proxy server nastaven.
Vzdálený příkaz
Nutno určit příkaz Mercurialu, který má být spuštěn na vzdálené straně.

Spuštění z příkazového řádku

thg clone

alias: cl

Skladba příkazu je

thg clone [SOURCE] [DEST]

kde [SOURCE] a [DEST] jsou cesty ke zdrojovému repozitáři a k cílové složce nového repozitáře.

Commit

Commit je druhá nejvíce používaná procedura po Verpánku. Tento nástroj provede nejenom požadovanou registraci změn (commit), ale umí také přezkoumat stav pracovního adresáře a provádět nejběžnější prvozní úlohy, jako je přidání nových souborů, zjistit přejmenování souborů a manipulovat s filtrem pro ignorování souborů.

Commit dialog

Dialogové okno Commit

Popis prvků

Výčet prvků nástrojové lišty úlohy komit:

### text filtru ###
Pole pro zadání filtrovacího řetězce pro vyhledání souborů.
Status
Rozvinovací seznam různých módů souborů. V seznamu souborů se zobrazí pouze ty soubory, jejichž stavy jsou v seznamu Status zatrženy:
  • upravený ( M odified ) znamená, že sledovaný soubor byl změněn.
  • přidaný ( A dded ) znamená, že nesledovaný soubor byl přidán ke sledování.
  • odebraný ( R emoved ) znamená, že sledovaný soubor byl odebrán příkazem hg remove.
  • chybějící ( ! ) znamená, že Mercurial soubor postrádá. Když napřiklad přejmenujete nebo smažete sledovaný soubor v Exploreru, objeví se jako chybějící a jeho nové jméno jako neznámé. Pravým poklepem na novém názvu vyvoláme dialog, ve kterém lze přejmenování odhalit porovnáním obsahů a označit starý soubor jako odstraněný, nový soubor jako přidaný a zapsat celou operaci jako přejmenování.
  • neznámý ( ? ) patří souborům, které Mercurial nesleduje, ani nejsou uvedeny v seznamu ignorovaných souborů. Toto označení je implicitní pro soubory, které mají být do správy revizí teprve přídány. Kontextové menu neznámého souboru obsahuje volbu „Ignore“, která otevře dialogové okno pro podrobnější nastavení volby.
  • ignorovaný ( I ) patří nesledovaným souborům, které jsou uvedeny v seznamu ignorovaných souborů.
  • čistý ( C lean ) platí pro sledované soubory, které nebyly editovány.
Refresh
Znovu načíst seznam souborů.
Větev
Uvádí název aktuální větve pracovního adresáře. Poklepem otevřeme dialogové okno, kde lze s větví manipulovat. Nedoporučujeme používat bez dobré znalosti pojmenovaných větví Mercurialu.
Copy message
Rozvinovací seznam posledních deseti souhrnných zpráv komitů.
Možnosti
Dialogové okno pro podrobné nastavení náležitostí komitu - Jméno uživatele, Datum, Push po komitu, Auto Includes, Odbočit do subrepozitářů.

Lištu uzavírá roletka pro výběr procedury:

Commit
Komitovat změny.
Amend
Upravit aktuální revizi.
QNew
Vytvořit novou oprávku.
Refresh
Znovu načíst aktuální oprávku (patch).

Pole se seznamem souborů má pět (šest) sloupců:

  • Zatržítko, které označuje soubor, vybraný pro operaci. Neoznačené soubory se akce Commit nezůčastní.
  • Sloupec Stat uvádí status (mód) jednotlivého souboru. Status ‚S‘ označuje ‚nečistý subrepozitář‘, který potřebuje být komitován.
  • Sloupec MS označuje stav sloučení souboru, což může být R(esolved) nebo U(nresolved); zobrazí se jen v případě potřeby
  • Sloupec Název souboru uvádí kanonickou cestu souboru relativně ke kořeni repozitáře (k repozitóriu).
  • Sloupec Typ uvádí příponu souboru (pokud existuje).
  • Sloupec Velikost uvádí velikost neodebraného souboru.

Výběr změn

Proces výběru změn spočívá ve výběru těch souborů pracovního adresáře, které mají být zahrnuty do následného komitu. Nezatržené soubory jsou z komitu vyloučeny.

Toto poněkud porušuje zásadu Mercurialu, že každý changeset popisuje stav repozitáře v daném časovém okamžiku. Když vyloučíte soubory z komitu, vytváříte zkreslený pohled na stav změn. Protože výběr souborů při provádění komitu je někdy potřebný a Mercurial jej podporuje, je tato možnost součástí komitu již od první verze THg.

Nově v TortoiseHg 2.7 umožňuje nástroj komitu provádět částečný výběr dat z jednotlivých upravených souborů. Znamená to, že můžete vyloučit část provedených změn v souboru. To opět porušuje zásadu Mercurialu pro komitování stavu pracovní kopie ale je to velice užitečná vlastnost. Nejčastěji citovaným příkladem je schopnost komitovat opravu chyby při vyloučení všech ostatních opravných zásahů, takže po komitu můžete pokračovat v odlaďování.

Vyloučení určité části změněného a vybraného souboru v seznamu na levé straně se provádí tak, že se v odpovídajícím zobrazení změn v pravém dolním poli zvýrazní ta část, která má být vyloučena.

Kontextové menu zvýrazněné části má tyto položky:

Copy

Select All

Editor Options >
Wrap >, Whitespace >, EOL Visibility >.
Označit vyloučené změny
Přepínač pro přeškrtnutí vyloučených změn. Toto nastavení je primárně osobní preference ale budoucí verze TortoiseHg mohou rozšířit použití tohoto proškrtnutí pro částečné vyloučení individuálních změn.
Hledat v aktuálním souboru

Při tomto výběru se otevře další lišta s těmito prvky:

Zavřít lištu

Textové pole

Ignorovat velikost písmen - zatržítko

Wrap search - zatržítko

Prev, Next

Hledat v celé historii
Při tomto výběru se otevře karta Hledat

Když uživatel vyloučí jednu nebo více změn souboru, považuje TortoiseHg tento soubor za částečně vybraný (tato možnost výběru změn je někdy označována jako částečný komit. Částečně vybrané soubory jsou v seznamu souborů uvedeny se speciálním označením.

Tato nová možnost částečného výběru je podobná proceduře Hunk selection popsaná v dokumentaci k TortoiseHg 0.9.3 a to v několika ohledech:

  1. Výběr změn je integrován přímo do zobrazení diffu. Žádný přepínač režimu není potřebný.
  2. Soubory pracovní kopie se během částečného komitu nemění. Tak je možné se vyhnout vážnému problému s oprávněním ve Windows.
  3. Výběr změn je možný pro kopírované či přejmenované soubory s jednou výjimkou - nelze vyloučit všechny změny, protože se tím vylučuje celý soubor z komitu.

TortoiseHg má od verze 2.0 odkládací (shelve) nástroj který umí přesunout vybrané změny z pracovního adresáře do oprávky (patch) nebo mezi oprávkami ale možnost částečného komitu je velice odlišná v tom, že nikdy nemění soubory pracovní kopie. Vše co činí je to, že vyloučí část změn z komitované verze souboru. Po komitu zůstávají všechny vyloučené změny stále v pracovní kopii.

Po stisknutí tlačítka Commit zkontroluje komitový nástroj zda některý z ověřovaných souborů není částečně vyloučený. Je-li nějaký částečný komit potřebný, vytvoří komitový nástroj prozatimní oprávkový soubor, který popisuje jak generovat obsah částečně komitovaných souborů a předá tento oprávkový soubor extenzi TortoiseHg pro částečný komit. Tato extenze spouští komitový příkaz Mercurialu se specielními háčky (hooks), v důsledku čehož přicházejí obsahy pro částečný komit z dočasných oprávkových souborů místo aby byly čteny z pracovní kopie. Po komitu jsou tyto dočasné soubory vymazány a soubory pracovní kopie zůstávají nedotčeny.

Kontextová menu souborů

Pravým poklepem na soubor v seznamu souborů otevřeme kontextové menu příkazů, použitelných právě pro tento soubor.

U neznámých ? souborů umožňuje kontextové menu zjistit přejmenování (pokud si myslíte, že neznámý soubor je kopií nebo přejmenování revizovaného souboru) nebo nastavit seznam ignorovaných souborů repozitáře (pokud nemá být neznámý soubor sledován a chcete, aby jej Mercurial ignoroval).

Pole pro zprávy komitů

Pole pro zprávy komitů karty Commit má kromě běžných (Undo, Redo, Cut, Copy, Paste, Delete, Select All, Editor Options a Zvýraznění skladby) ještě tyto speciální kontextové nabídky:

Vložit jména souborů:
Vlepit v seznamu vybrané názvy souborů do komitové zprávy v místě kurzoru.
Použít formát:
Použít nastavené zalamování řádků.
Nastavit formát:
Otevře dialogové okno Nastavení TortoiseHg > Commit.

Má-li váš projekt pravidla pro formátování komitových zpráv, můžete je nastavit v tomto konfiguračním okně. Procedura komitu uplatní vaše zadání formátu při provádění komitu.

Pro formát komitové zprávy jsou signifikantní tyto položky karty Commit widgetu Settings:

Délka souhrnného řádku:
Maximální délka řádku souhrnného popisu komitu.
Průvodní texty anglicky:
Generovat anglickou zprávu komitu i pro neanglické jazykové prostředí.

Slučování

Procedura komitu má speciální režim, je-li otevřena v repozitáři, který je ve slučovaném stavu (buďto slučování probíhá nebo byla provedena aktualizace, která způsobila konflikt).

Stavový sloupec MS je v tomto režimu zvlášť užitečný. Soubory, označené R jsou ty, kde Mercurial nebo uživatel úspěšně sloučil (rozřešil / resolved) změny od obou rodičů. Soubory, označené U mají nerozřešené (unresolved) změny. Můžete použít nabídku kontextového menu Restart Merge pro opětovné spuštění slučovacího procesu nebo nabídku Editovat pro rozřešení konfliktu ručně. Nabídka Restart Merge vám dovolí vybrat slučovací nástroj nebo dokonce vybrat jednu z verzí nepodmínečně (internal:local, internal:other). Po ručním rozřešení konfliktů musíte použít kontextovou nabídku mark resolved abyste změnili stav sloučení souboru na R.

Mercurial nedovolí provést komit, pokud má některý ze souborů nerozřešený (U) stav sloučení.

Pro úplnost dodejme, že local je revize, u níž začíná proces slučování a other je revize, s níž má být sloučení provedeno.

Abychom zrušili neúspěšný pokus o sloučení, musíme přikázat, aby Mercurial odstranil druhého rodiče z pracovního adresáře. To obvykle znamená provést čistou aktualizaci prvního rodiče. Slučovací nástroj má tlačítko Undo, jímž lze zařídit přesně to samé.

Jakmile máte svůj pracovní adresář zpět u jedné rodičovské revize, můžete zopakovat proces sloučení.

Subrepozitáře

Subrepozitář je entita, zavedená v Mercurialu 1.3. Umožňuje repozitáři Mercurialu ukládat odkazy na externí repozitáře (případně jiných VCS) a zahrnout stavy těchto externích repozitářů do historie hlavního repozitáře.

TortoiseHg 1.0 zavedl rudimentární podporu pro subrepozitáře a to pouze v nástroji commit a status. Považuje-li Mercurial subrepozitář za „nečistý“, objeví se v seznamu souborů nástroje Commit s označením stavu S a je potom komitován spolu s jinými změnami, přičemž se aktualizuje soubor .hgsubstate v kořenovém adresáři repozitáře.

Nastavitelné parametry

Nastavitelné parametry úkonu Commit lze zadat v dialogu File > Settings > Commit viz odstavec 6.1.3 kapitoly 6. Nastavení parametrů.

Spuštění z příkazového řádku

thg commit [OPTIONS] [FILE]...

aliases: ci

commit tool

options:

 -u --user  record user as committer
 -d --date  record datecode as commit date

use "thg -v help commit" to show global options

Pro rychlou nápovědu o formátu datového typu:

hg help dates

Shelve

Nástroj shelve dovede přesouvat změny mezi pracovním adresářem a oprávkami v almárce (shelf patches). Byla-li povolena extenze MQ, umí také přesouvat změny do i z neaplikovaných oprávek.

Nástroj shelve spustíme ve Verpánku výběrem Repozitář > Shelve…, nebo příkazem thg shelve

Poznámka

Vřele doporučujeme nastavit konfiguraci EOL oprávky na „auto“, pokud používáte nástroj shelve pro textové soubory s DOS EOLn.

Shelve dialog

Dialogové okno Shelve

Vlastnosti

Nástroj shelve má tři nástrojové lišty. Levou a pravou pro dva panely vedle sebe a střední lištu pro příkazy ‚Refresh‘ a New Shelf. Levá lišta je zrcadlovým obrazem pravé, obě nabízejí stejné funkce v obráceném pořadí.

Levá lišta obsahuje tyto akce:

Smazat vybrané porce (chunks)
Odstranit nebo zrušit všechny vybrané (přepnuté) porce v aktuálně vybraném souboru.
Přesunout všechny soubory vpravo
Přesunout všechny změny ve všech souborech do oprávky, vybrané v pravém panelu.
Přesunout vybraný soubor vpravo
Přesunout všechny změny ve vybraném souboru do oprávky, vybrané v pravém panelu.
Editovat soubor
Při procházení pracovním adresářem toto tlačítko umožní editaci vybraného souboru. Případně editaci aktuálně zobrazeného oprávkového souboru.
Přesunout vybrané porce vpravo
Přesunout všechny vybrané (přepnuté) porce do oprávky, vybrané v pravém panelu.

Střední lišta má dvě akce:

Refresh
Znovu načte rozbalovací seznamy oprávek a zobrazení pracovní kopie.
New Shelf
Vytvoří nový almárkový soubor. Musíte zadat název i když je k disposici rozumná implicitní hodnota.

Pravá nástrojová lišta umožní přesun změn z oprávek, vybraných na levé straně do oprávek, vybraných na pravé straně, nebo přesun pracovní kopie, byla-li vybrána na pravé straně.

Panely oprávek

Levý a pravý panel oprávek jsou identické, kromě toho, že změny pracovní kopie jsou přístupné jenom v levém panelu. Vybíratelné porce (chunks) jsou zobrazeny pouze tehdy, jde-li o textový soubor a je-li v modifikovaném stavu. Přidané nebo odebrané soubory mohou být odloženy (shelved) ale jejich části nelze individuálně vybrat.

Tlačítko Clear vyprázdní aktuálně vybranou cestu nebo vrátí (revert) celou pracovní kopii. Tlačítko Delete smaže aktuálně vybranou oprávku almárky.

Poznámka

Tlačítko Delete není sensitivní, je-li vybrána oprávka MQ. Oprávky MQ se smažou prostřednictvím ‚qdelete‘ s použitím kontextového menu Verpánku nebo widgetu Patch Queue.

Při dvojím poklepu na souboru v seznamu dostanete kontextové menu s příkazy:

Visual Diff
Otevřít vybraný soubor ve vašem nastaveném nástroji pro zobrazení diffů. Povoleno jen pro soubory pracovní kopie.
Edit Local
Otevřít verzi pracovní kopie vybraného souboru.
Revert to Revision
Vrátit všechny změny vybraného souboru. Povoleno jen pro soubory pracovní kopie.

Trashcan

Nástroj shelve zachází s vašimi zdrojovými a oprávkovými soubory velmi konzervativně. Předtím, než modifikuje kterýkoliv soubor, provede zálohování do .hg/Trashcan. Tato nádoba na odpadky může být vyprázdněna s použitím nástroje Verpánku Repository > Purge….

Spuštění z příkazového řádku

thg shelve

aliases: unshelve

shelve tool

use "thg -v help shelve" to show global options

Synchronizace

Nástroj TortoiseHg > Synchronizovat

Synchronize dialog

Synchronizační nástroj se používá pro přesouvání changesetů mezi repozitáři nebo pro odesílání změn přes e-mail.

Incoming
Ukázat (příchozí) changesety, které mohou být staženy (pulled) z cílového repozitáře, neboli změny v cílovém repozitáři, které nejsou v lokálním repozitáři
Pull
Stáhnout příchozí changesety z cílového repozitáře
Outgoing
Ukázat (odchozí) changesety, které mohou být poslány (pushed) do cílového repozitáře, neboli změny v lokálním repozitáři, které nejsou v cílovém repozitáři
Push
Poslat odchozí changesety do cílového repozitáře, neboli zařídit, aby se lokální tip stal tipem v cílovém repozitáři
Email
Poslat odchozí changesety (do cílového repozitáře) jako e-mail
Rozbalit
Rozbalit svazkový (bundle) soubor .hg
Stop
Zastavit probíhající operaci
Po akci pull:

Tlačítko obsahuje zatržítka pro výběr operací, které se mají provést po stažení (pull) změn ze vzdáleného repozitáře. Otevřete-li konfigurační nástroj, můžete vybrat implicitní chování pro váš uživatelský účet a potlačit tento výběr na úrovni repozitáře.

None
Po akci pull se neprovedou žádné operace. Můžete si prohlédnout stažené changesety v záznamovém panelu a můžete se pokusit o aktualizaci k novému tipu.
Update
Automaticky aktualizovat k tipu aktuální větve tehdy a jen tehdy, jestliže byly nové revize staženy do lokálního repozitáře. Může to spustit slučování, jestliže stažené změny kolidují s lokálními nekomitovanými změnami.
Fetch
Ekvivalentní k hg fetch. Viz dokumentaci k extenzi fetch. Tato procedura je přístupná, pokud byla povolena uživatelem.
Konflikty při slučování
Konflikty při sloučování řešit pokud možno automaticky. Je-li tato volba zatržena, pokusí se Mercurial řešit triviální konflikty bez spoluúčasti uživatele. Není-li, jsou všechna slučování interaktivní.
Možnosti

Tlačítko obsahuje zatržítka pro výběr méně používaných příkazových opcí.

Povolit push nové větve
Povolit vyslání (push) nové větve
Vynutit push nebo pull
Potlačit varování o vícerých čelech (heads) nebo nespřízněných repozitářích
Zabočit do subrepozitářů
Příkazy incoming (příchozí) nebo outgoing (odchozí) mohou zahrnout i subrepozitáře a poskytnout úplný přehled
Dočasně odpojit nastavené HTTP proxy
Tato volba je sensitivní pouze tehdy, je-li pro daný repozitář nastaven proxy web; zatržením se tento web zapoví.
Emitovat výstup ladění
Pracovat s frontou oprávek (-mq)
Vzdálený příkaz
Textové pole pro zadání vzdáleného příkazu
Větev
Textové pole pro zadání názvu větve

Je-li synchronizační nástroj otevřen ve Verpánku, má nástrojová lišta ještě zatržítko

Cíl.
Zatržením se aktivuje roletkový seznam, ve kterém lze vybrat cílovou revizi, bookmark nebo větev. Tyto výběry se přidají ke každému synchronizačnímu příkazu. Je-li synchronizační nástroj otevřen mimo Verpánek, je toto zatržítko skryté.

Než bude zatržítko „Cíl“ doplněno i do widgetu TortoiseHg > Synchronizovat, bude zřejmě vhodnější používat synchronizační nástroj z Verpánku.

Pod nástrojovou lištou je uvedena aktuálně vybraná adresa URL. Tuto adresu použijí všechny synchronizační nástroje.

Celkový účinek nástroje Synchronizovat je ten, že může být čten jako příkaz Mercuriálu z příkazového řádku. Tlačítky nástroje se vybere příkaz, v dialozích Po akci pull a Možnosti se zadají parametry, v roletkovém seznamu Cíl se určí revize či větve a textovém poli lze zkontrolovat adresu vzdáleného repozitáře.

Před textovým polem pro URL jsou dvě ikony pro nastavení bezpečného spojení a uložení aktuálního URL jako alias.

Přidání URL

Nejsnadněji přidáte nové URL do svého repozitáře jeho přetažením (drag @ drop) z jiné aplikace, uložíte a zadáte alias.

V textových polích spodní části karty Synchronizovat lze vidět adresy, uložené v konfiguračním souboru aktuálního repozitáře (Cesty v nastavení repozitáře) a adresy, které jsou uložené v jiných příbuzných repozitářích, uvedených v Seznamu repozitářů (Příbuzné cesty).

Poznámka

„Příbuzný“ znamená, že dva repozitáře mají alespoň jeden společný kořenový changeset. Klonované repozitáře jsou zcela zřejmě příbuzné. Operace push a pull vyžadují příbuznost repozitářů; tento požadavek lze potlačit opcí –force.

Seznamy adres URL mají kontextové menu s nabídkami Explore, Terminal, Copy Path, Edit a Remove.

Bezpečné připojení ke vzdálenému repozitáři

Mercurial (a TortoiseHg) podporují dva bezpečnostní protokoly pro výměnu dat se vzdálenými servery, HTTPS a SSH.

Bezpečné spojení HTTPS lze nastavit aktivací ikony Bezpečné spojení HTTPS v kartě Synchronizovat.

Bezpečné spojení HTTPS se skládá ze dvou asymetrických částí. První částí je ověření hostitele, což lze v nástroji Bezpečné spojení HTTPS zadat trojím způsobem:

  • Ověřit pomocí certifikátů certifikační autority (CA)
  • Ověřit pomocí uloženého fingerprintu hostitele
  • Bez ověření hostitele avšak stále se zašifrováním (nejhorší)

Druhou částí bezpečného spojení je ověření uživatele zadáním jména, hesla, případně certifikačního klíče či řetězce (chain).

Prověření hostitele

Před verzí 1.7 ignoroval Mercurial tuto část bezpečnosti HTTPS spojení. Ve verzi 1.7 již začal varovat, že certifikát serveru není ověřován.

Mercurial 1.7.5 zavedl schopnost ověřit certifikát serveru HTTPS porovnáním s uloženým fingerprintem. Synchronizační nástroj TortoiseHg 2.0 obsahuje dialog, umožňující zvolit mezi fingerprintem hostitele nebo použitím certifikátu CA.

Teoreticky je fingerprint hostitele bezpečnější než certifikáty CA, pokud zcela nevěříte všem autoritám, uvedeným v implicitním uložišti. Musíte si ovšem být jist, že váš uložený fingerprint je skutečně ten správný.

TortoiseHg 2.0 také umožňuje použití nezajištěného spojení s daným hostitelem. Přitom se nepoužije ověření certifikátu hostitele ale použije se zašifrovaný datový proud (stream) - což je vlastně chování Mercurialu před verzí 1.7. messages).

Prověření uživatele

Pro prověření vlastní osoby vzhledem k serveru HTTPS je k disposici několik mechanizmů.

Nejjednodušším je oprávnění Mercurialu požádat uživatele o zadání uživatelského jména a hesla. To má tu nevýhodu, že separátní výzvy vyžadují vytvoření dvou separátních spojení.

Další možností je připojení uživatelského jména k URL, takže Mercurial žádá pouze o zadání hesla (passphrase). To zkracuje proces prověřování na polovinu ale je stále poněkud únavné. Nechcete-li být obtěžování se zadáváním fráze hesla, musí být někde uloženo. Máte tyto možnosti:

  1. připojit passphrase k URL HTTPS v konfiguračním souboru každého repozitáře
  2. uložit passphrase do konfiguračního souboru uživatele
  3. použít extenzi mercurial_keyring k uložení passphrase v kryptografické formě.

Až donedávna podporoval TortoiseHg ve svém grafickém rozhranní pouze první možnost i když interně byly podporovány i druhá a třetí varianta. V grafickém rozhranní TortoiseHg 2.0 jsou podporovány pouze dvě poslední varianty. Uživatelské jméno a heslo jsou při ukládání odtrženy od URL.

Při přechodu od první možnosti k některé další vyberte v synchronizačním nástroji HTTPS URL, otevřte bezpečnostní dialog a zadejte uživatelské jméno a passphrase pro hostitele (není-li žádný nakonfigurován) a uložte. Poté uložte samotné URL a povolte odtržení ověřovacích dat uživatele od URL.

Poznámka

Je-li povolena extenze mercurial_keyring, bezpečnostní dialog vám nedovolí zadat passphrase ve formě prostého textu, neboť se předpokládá, že chcete uložit passphrase kryptograficky.

Druhá a třetí možnost používá sekci [auth] konfiguračního souboru uživatele k nastavení jména uživatele a passphrase (nebo soubory s certifikačními klíči) k autentifikaci u daného jména HTTPS hostitele. Sekce [auth] podporuje mnohem víc konfigurací, než je tato - viz stránky man.

Jakmile je povolena extenze mercurial_keyring (a všechny aplikace jsou restartovány), můžete odebrat HTTPS passphrases ze všech svých konfiguračních souborů. Mercurial požádá o passphrase jednou, potom jej kryptograficky uloží s použitím nejlepšího back-endu, který na vaší platformě nalezne.

Extenze mercurial_keyring vyžaduje aby byla sekce [auth] nastavena pro hostitele, ke kterému se připojujete aby mohla poskytnout jméno uživatele. Má-li vaše URL vkódované (encoded) jméno uživatele nebo passphrase, je sekce [auth] ignorována.

SSH

SSH je symetrický peer-to-peer bezpečný tunel. Klienti SSH a servery mají své vlastní systémy správy, takže Mercurial se na výzvách po hesle při použití SSH nepodílí. To je problematické ve Windovs, pročež TortoisHg připojuje do svých instalačních programů klienta SSH TortoiseHgPlink. TortoisePlink je port klienta Plink SSH, který používá dialogové prompty pro prověření hostitelského klíče a hesla uživatele. TortoisePlink (vyvinutý v rámci projektu TortoiseSVN) může použít také ostatní nástroje SSH, které jsou součástí Plink toolchainu, včetně prostředku Pageant key.

Je známým problémem, že TortoisePlink v mnoha situacích nepoužívá kompresi, v důsledku čehož je až čtyřikrát pomalejší než openssh a jiní klienti. Pro Windows doporučuje TortoiseHg použití HTTPs.

See the Frequently Asked Questions for help if you have trouble connecting to ssh servers.

E-mail

Email dialog

Dialogové okno Email lze spustit ze dvou nástrojů TortoiseHg.

  • Z Verpánku jako kontextové menu pro jednu nebo více vybraných revizi.
  • Tlačítkem Email out.. v synchronizačním panelu odešlete všechny odchozí změny do zadaného cílového repozitáře.

Parametry poštovního klienta lze přednastavit v otevřeném okně ‚Email out‘ výběrem :guilabel:Settings`.

V dokumentaci pro Mercurial se seznámíte s rozdíly mezi plain patches, Hg patches, Git patches a svazky (bundles).

Spuštění z příkazového řádku

thg sync

aliases: synchronize

Synchronize with other repositories

use "thg -v help sync" to show global options

Skladba je jednoduchá, žádné opce nebo parametry nejsou zapotřebí, kromě opcí globálních.

Serve

Mercurial poskytuje vestavěný, úsporný server, který je schopný zprostředkovat jedno spojení pro jeden repozitář. Server neprovádí ověření uživatele ale nabízí vhodnou, ad-hoc metodu pro synchronizaci repozitářů v rámci lokální sítě.

Bližší informaci o publikování repozitářů lze nalézt v článku Publishing Repositories.

Spuštění z TortoiseHg

Web server dialog

Nástroj Serve je prostředníkem pro vestavěný webový server Mercurialu. Jakmile je spuštěn, může se počítač připojit k portu http a procházet vašimi repozitáři, provádět úkony clone, pull, či dokonce push, pokud to konfigurace vašeho serveru dovoluje. Webový server může být spuštěn buď z Verpánku - Repozitář > Web Server nebo z kontextové nabídky Exploreru - TortoiseHg > Webový server.

Tlačítka nástrojové lišty:

Spustit
spustit webový server
Zastavit
zavřít webový server
Nastavit
otevře kartu Server nástroje Settings

Je-li konfigurační dialog spuštěn prostřednictvím tlačítka Configure, je spuštěn pro aktuální repozitář. Navštivte prosím wiki stránky Mercurialu pro podrobný popis různých konfigurací webu.

Nástroj serve v TortoiseHg 2.0 nativně podporuje kolekci lokálních repozitářů. Jednoduše je přetáhnete v dialogovém okně „serve“, nebo je přidáte ručně s použitím editovacích tlačítek. Kolekci repozitářů lze uložit a znovu načíst.

Spuštění z příkazového řádku

thg serve [OPTION]...

start stand-alone webserver

options:

        --webdir-conf  name of the webdir config file

use "thg -v help serve" to show global options

Vypátrat změnu jména

Rename guessing dialog

Dialog pro hledání změněného názvu

Tento dialog se používá pro vyhledání přejmenovaných, přemístěných anebo kopírovaných souborů u nichž k těmto změnám došlo bez vědomí aplikace Mercurial. Dialog lze spustit z kontextové nabídky TortoiseHg (Status souboru, Uhodnout změny názvu) nebo v kartě Commit.

Používá se tento postup:

  • vyberete jeden nebo více neverzovaných souborů
  • na posuvníku nastavíte požadovanou pravděpodobnost hledané shody
  • zrušíte zatržení Vzít v úvahu pouze smazané soubory aby se hledání tykalo i kopií
  • stisknete Nalézt změny jmen
  • sledujete Kandidáti shod a akceptujete dobré shody
  • opakujete tak dlouho, dokud nejsou všem neverzovaným souborům nalezeny shody.

Kandidáti shod

Když v tomto seznamu vyberete shodu, rozdíly mezi vybranými soubory se zobrazí v dolním poli. Volbou Accept Selected Matches projevíte souhlas a změna se zapíše do análů Mercurialu.

Spuštění z příkazového řádku

thg guess

guess previous renames or copies

use "thg -v help guess" to show global options

Seznam ignorovaných souborů

Ignore filter dialog

Seznam ignorovaných souborů .hgignore je uložen v repozitóriu. Tento ručně vytvořený soubor se edituje pomocí dialogového okna, které lze spustit z kontextové nabídky TortoiseHg > Ignorované soubory…. Přepínač Glob umožňuje přepínat mezi glob a regexp vzory.

Tlačítkem Přidat potvrzujeme přidávanou položku seznamu, kterou zapíšeme do textového pole vlevo.

Spuštění z příkazového řádku

thg hgignore [FILE]

aliases: ignore, filter

ignore filter editor

use "thg -v help hgignore" to show global options

Archivace

Při tvorbě archivu repozitáře lze vybírat z řady formátů. Jsou to obvyklé komprimované formáty ale je také možné vytvořit složku nekomprimovaných souborů v jiném místě než v pracovním adresáři (jako klon ale bez složky .hg). Takové archivy mohou být užitečné například při tvorbě sestav (builds - podobně jako při ‚svn export‘). Archivy s vybraným obsahem mohou být také užitečné při posílání změn externím osobám bez přístupu k repozitáři

Spuštění z Verpánku

V kontextovém menu vybraného changesetu ve Verpánku volíte Export > Archive….

Archive dialog

Dialogové okno pro archiv repozitáře

Revize
Zadání revize, kterou chcete archivovat nebo exportovat.
Pouze soubory upravené či vytvořené v této revizi
Omezíte si počet souborů v archivu.
Zabočit do subrepozitářů
Umožňuje přístup do subrepozitářů.
Destinace
Jméno souboru nebo složky, kde bude archiv vytvořen. Jméno se skládá z názvu aktuálního repozitáře s připojeným číslem vybrané revize, případně s příponou vybraného formátu archivního souboru.
Typy archivů
Zde můžete zvolit typ vytvářeného archivu od prosté složky se soubory až k řadě standardních archivních typů.
Příkaz Hg
Toto pole zobrazuje příkaz, který bude proveden.
Vždy zobrazit výstup
Pro zobrazení záznamového panelu s výsledky prováděného příkazu.

Archivovat repozitář znamená vytvořit archivní soubor nebo podadresář s obsahem vybrané revize.

Spuštění z příkazového řádku

thg archive

Úplná skladba je

thg archive -r [REV] -t [TYPE] [DEST]

kde [REV] je archivovaná revize, [TYPE] je typ vytvářeného archivu, a [DEST] je název souboru nebo složky, která se má vytvořit.

Podrobněji viz hg.1.html#archive, nebo zadejte hg help archive z příkazového řádku systémové konzoly nebo v panelu Output Log ve Verpánku.

Nastavení parametrů

Settings dialog

Nástroj Settings se používá pro konfiguraci jak TortoiseHg, tak Mercurialu, protože TortoiseHg je vlastně uživatelská obálka programu Mercurial.

Mercurial ve Windows má tři konfigurační úrovně.

  1. Nastavení pro počítač v souboru C:\Program Files\TortoiseHg\Mercurial.ini Tento soubor je čten jako první a má nejnižší prioritu.
  2. Nastavení pro uživatele v souboru C:\Documents and Settings\username\mercurial.ini Tento soubor je čten jako druhý a může přepsat parametry nastavení pro počítač.
  3. Nastavení pro repozitář v souboru repozitórium\.hg\hgrc. Tento soubor je čten jako poslední a má tudíž nejvyšší prioritu.

Nastavení pro počítač může být přepsáno při aktualizaci programu, takže se doporučuje provádět změny jen v souborech ..username\mercurial.ini a/nebo .hg\hgrc. V TortoiseHg je toto doporučení posíleno tím, že se používají jen dvě úrovně nastavení:

Globální nastavení uživatele
edituje nastavení pro uživatele ..username\mercurial.ini
Nastavení repozitáře
edituje nastavení pro repozitář .hg/hgrc

Mezi těmito režimy lze přepínat výběrovými tlačítky vlevo nahoře v kartě Settings.

Většina uživatelů TortoiseHg si všechny nastavitelné parametry uloží v globálním nastavení a soubor hgrc v repozitáři použije pro uložení cest (aliasy pro vzdálené repozitáře) a konfiguraci webu. Vězme, že soubory pro tato nastavení neexistují dříve, než poprvé použijeme dialog Nastavení.

Karty

Nástroj pro konfiguraci programu se skládá z přehledně uspořádaných karet.

Každá karta přibližně odpovídá jedné sekci vašeho konfiguračního souboru Mercurial.ini. Některé sekce však byly kvůli přehlednosti rozděleny do více karet.

Všechny karty kromě Extenze, Nástroje, Hooks mají stejný formát - sloupec nastavitelných parametrů s rozbalovacími seznamy možných hodnot. Názvy parametrů jsou doplněny skrytými popisy parametru a jeho možných hodnot. Popis aktuálně editovaného parametru se rovněž objeví v textovém rámečku dole.

Podrobnější informaci o nastavitelných parametrech nalezneme na stránkách wiki pro Mercurial, kromě těch karet, které jsou specifické pro TortoiseHg: TortoiseHg, Commit, Changelog.

TortoiseHg

Jazyk aplikace
Jazyk pro kontrolu pravopisu. Není-li určeno, použije se systémový jazyk. Například: en, en_GB, en_US.
Nástroj pro sloučení:
Grafický program pro řešení konfliktů při slučování. Pokud není určen, vybere Mercurial první použitelný nástroj, který nalezne v našem systému, nebo použije vlastní nástroj, který konflikty jenom označí. Tuto poslední možnost lze přikázat výběrem internal:merge. Volba:guilabel:internal:prompt vždy vybere lokální nástroj a volba guilabel:internal:dump ponechá soubory v pracovním adresáři pro ruční sloučení.
Nástroj Visual Diff:
Určit externí program pro porovnávání diffů (příkaz extdiff)
CLI editor:
Editor, který Mercurial použije pro více řádkový vstup od uživatele, což jsou zejména zprávy komitů.
Terminál:

Vybrat příkaz ke spuštění oblíbené konzoly. Pokud hodnota obsahuje řetězec %(reponame)s, bude za něj dosazen název repozitáře. Podobně %(root)s bude obsahovat úplnou cestu k repozitáři (potřebný restart).

Implicitně ve Windows:
cmd.exe /K title %(reponame)s
Implicitně v OS X:
neurčeno
Implicitně v ostatních:
xterm -T "%(reponame)s"
Následné operace:
Mezerami vymezený seznam operací konzoly, které se mají okamžitě provést bez součinnosti uživatele. Příkazy jsou „add remove revert forget“. Implicitně: None (leave blank)
Šířka ouška karty:
Určit počet míst na která se roztáhnou ouška karet v různých oknech TortoiseHg. Implicitně je ‚neurčeno‘.
Zobrazit karty:
Zobrazit repozitář v kartě, i když je jediný. Implicitně je False.
Sledovat změny repozitáře:
Určit kategorii souborů, u kterých TortoiseHg monitoruje změny. Implicitně je vždy.
Max velikost diffu:
Maximální velikost souboru (v KB) pro zobrazení změn v oknech pro changelog, status a commit. Nulová hodnota je pro nastavení bez limitu. Implicitně je 1024 (1MB).
Rozdělit GUI:
Při spuštění příkazu z příkazového řádku spustit proces na pozadí pro zobrazení grafických dialogů.
Název úplné cesty:
Zobrazit celou cestu k adresáři repozitáře v záhlaví okna místo pouhého jména adresáře. Implicitně je False.
Automatické sloučení:
Určuje, zda se má TortoiseHg pokusit automaticky řešit změny z obou stran téhož souboru a hlásit slučovací konflikty jen tehdy, pokud to není možné. Při nastavení False jsou všechny soubory s oboustrannými změnami hlášeny jako konfliktní i když jde o změny v různých místech souboru. V každém případě je při výskytu konfliktu uživatel vyzván aby prohlédl a řešil změny manuelně. Implicitně je True.
Nový skelet repozitáře:
Je-li určeno, jsou soubory v adresáři (např. .hgignore) kopírovány do nově vytvořeného adresáře.

Verpánek

Jediné okno Verpánku:
Není-li tato volba povolena, otevře se nový Verpánek pokaždé, když z kontextového menu vyberete „Hg Verpánek“.
Počáteční widget:
Nastavený widget se ukáže při otevření repozitáře. Implicitně: revdetails
Počáteční revize:
Uvedená revize bude vybrána při otevření repozitáře. Můžete vybrat „current“ (to jest rodiče pracovního adresáře), aktuální „tip“ nebo pracovní adresář (workingdir). Implicitně: current
Otevřít nové karty vedle stávajících:
Při volbě False se nová karta otevře za poslední otevřenou kartou.
Zabarvení podle autora:
Zabarvení changesetů podle jména autora. Není-li umožněno, jsou změny zabarveny zeleně pro sloučení, červeně pro netriviální rodiče a černě pro běžné případy. Implicitně je False.
Celé jméno autora:
Není-li povoleno, zobrazí se ve zkrácené verzi.
Poloha úkonových karet:
Orientace lišty (east, west, off) s oušky úkonových karet. Při volbě off nejsou ouška zobrazena.
Pořadí úloh úkonové lišty:
Výpisem názvů lze určit počet a pořadí nástrojů lišty. Platné názvy jsou: log | commit | grep | pbranch } sync.
Dlouhý souhrn:
Zadáno-li true, spojují se řádky zpráv až do délky 80 znaků. Implicitně je False
Počet načtených revizí:
Počet současně zobrazitelných changesetů v protokolu.
Mrtvé větve:
Seznam čárkami oddělených jmen větví, které mají být ignorovány při sestavování seznamu jmen větví pro repozitář. Implicitní nastavení je None.
Barvy větví:
Seznam mezerami oddělených jmen větví a barev ve formě ‚branch:#XXXXXX‘. Mezery a dvojtečky ve jménu větve musí být předznamenány zpětnými lomítky (\). Podobně mohou být předznamenány i některé další znaky, např. \u0040 bude dekódováno na znak @ a \n na ‚linefeed‘. Implicitní nastavení je None.
Skrýt tagy:
Seznam mezerami oddělených tagů, které se nebudou zobrazovat. Užitečný příklad: zadejte ‚qbase qparent qtip‘ pro skrytí standardních tagů, vkládaných extenzí MQ. Implicitní nastavení je None.
Aktivovat záložky:

Nastavením auto, prompt, never se ovlivní aktivace záložek při aktualizaci k revizi, která má jednu či více záložek.

auto :
Pokusit se automaticky aktivovat záložky. Při aktualizaci k revizi s jedinou záložkou je aktivována tato záložka. Při více záložkách je nabídnut výběrový prompt.
prompt :
Implicitní nastavení. Zobrazit prompt při aktualizaci k revizi s jednou či více záložkami.
never :
Nikdy žádný prompt pro aktivaci záložky neukazovat.
Zobrazit rodinnou linii:

Zobrazit nepřímou závislost revize na grafu při filtrování revsetem - true, false, neurčeno; implicitně true.

Poznámka

Počítání rodinné linie může být v některých případech pomalé. Očekává se, že tato volba bude odstraněna po vyřešení problému s výkonem.

Commit

Jméno uživatele:
Jméno spojené s komity.
Požadovat jméno uživatele:
Požádat o jméno uživatele, nebylo-li dosud zadáno. Implicitní nastavení je False.
Délka souhrnného řádku:
Požadovaná délka řádku průvodní zprávy komitu. Tato délka je vyznačena svislou červenou čarou. Příkaz CTRL-E přeformátuje aktuální odstavec na nastavenou délku. Implicitně: 80
Po komitu zavřít
Ukončit proceduru commit po každém úspěšném komitu. Implicitní nastavení je False.
Push po komitu:
Aplikace se pokusí poslat (push) revizi k nastavenému repozitáři po každém úspěšném komitu. Implicitně je No push.
Seznam auto-include:
Čárkami vymezený seznam souborů, které jsou automaticky vloženy do každého komitu. Zamýšleno pouze jako nastavení repozitáře. Implicitní nastavení je None.
Seznam auto-exclude:
Čárkami rozdělený seznam souborů, které jsou automaticky vypuštěny z výběru při otevření dialogů status, commit a shelve. Implicitní nastavení je None.
Průvodní texty anglicky
Generovat anglickou zprávu, i když jsou proměnné prostředí LANGUAGE nebo LANG nastaveny na neanglický jazyk. Toto nastavení je používáno procedurami Merge, Tag a Backout. Implicitní nastavení je False.
Fáze nových komitů:
Lze zadat vlastnost public, draft, secret
Oprávky MQ-secret:
Určit fázi oprávek MQ-secret místo draft. Implicitně je False.
Ověřit fázi subrepozitáře:
Ověřit fázi aktuální revize každého subrepozitáře Pro jiná nastavení než „ignore“ se toto ověření provádí před komitem v rodičovském repozitáři. Implicitně je follow.
Monitorovat změny pracovního adresáře:

Určit frekvenci opětovného načítání (refresh) stavového výpisu pracovního adresáře - auto, allways, allwayslocal:

auto : default
TortoisHg rozhodne, kdy zčerství (refresh) status pracovního adresáře. Učiní tak pokaždé, když provede akci, která by mohla potenciálně změnit pracovní adresář. To může vynechat všechny změny, ke kterým dojde mimo kontrolu TortoiseHg;
always :
kromě výše uvedených automatických aktualizací ještě obnovit (refresh) seznam stavů při každém kliknutí na revizi pracovního adresáře nabo na ikonu „Commit“ v liště úkonů;
alwayslocal :
totéž jako při always avšak omezuje vynucená „osvěžení“ na lokální repozitáře.
Potvrdit přidání neznámých souborů:
Určuje, zda má TortoiseHg zobrazit konfirmační dialog před přidáním nových souborů při komitu. Zadáno-li False, vybrané nové soubory budou přidány do komitu bez potvrzovacího dialogu. Implictně: True
Potvrdit mazání souborů:
Určuje, zda má TortoiseHg zobrazit konfirmační dialog před odebráním souborů při komitu. Implicitně: True

Synchronizace

Operace po akci pull
Operace, které se provedou přímo po úspěšném provedení akce pull. Hodnota ‚update‘ odpovídá pull –update, ‚fetch‘ je extenze fetch, ‚rebase‘ odpovídá pull –rebase. Implicitní nastavení je None.
Připojit k push:

Výběr revizí (all, branch, revision), které se implicitně vyberou pro akci Push.

all :
Implicitní nastavení. Poslat (push) všechny změny ve všech větvích.
branch :
Pušit všechny změny v aktuální větvi.
revision :
Poslat změny aktuální větve až po aktuální revizi.
Potvrdit push:
Určuje, zda má TortoiseHg zobrazit konfirmační dialog před odesláním změn. Implicitně True.
Výběrové kombo:
Nastavuje režim zobrazování výběrové roletky v synchronizační liště (auto, always, neurčeno). Roletka obsahuje výpis vzdálených repozitářů. Při výběru auto se kombo zobrazí, je-li zadán více než jeden cíl.
SSH Command:
Příkaz se použije při spojení přes SSH

Server

Detaily repozitáře:

Název:
Název repozitáře pro použití ve webovém rozhraní. Implicitní hodnota je název pracovního adresáře.
Kódování:
Kódování souborů v repozitáři, použité ve webovém rozhraní a v aplikaci TortoiseHg.
Publikující repozitář:
Kontroluje chování fáze „draft“ při práci jako server. Je-li nastaveno „true“, odesílané changesety jsou zařazeny jako „public“ u klienta i serveru; stažené (pulled) či klonované changesety jsou zařazeny jako „public“ u klienta. Imlicitně: True

Webový server:

Popis:
Popis účelu nebo obsahu repozitáře.
Kontakt:
Jméno nebo mailová adresa osoby zodpovědné za repozitář.
Styl:
Výběr šablony stylů
Formáty pro archivaci:
Seznam (CSV) archivovacích formátů pro načítání
Port:
Port, kterému má být nasloucháno.
Push vyžaduje SSL:
Zda požadovat přenos příchozího ‚push‘ přes SSL, aby se zabránilo ‚čenichání po heslu‘.
Pruhy:
Kolik řádků májí zabírat „pruhy zebry“ ve víceřádkovém výstupu. Implicitní nastavení je 1; hodnota 0 volbu znemožní.
Souborů maximálně:
Maximální počet souborů uváděných v jednom changesetu.
Změn maximálně:
Maximální počet změn uváděných v changelogu.
Povolit push:
Zda povolit vzdálený push do lokálního repozitáře. Není-li určeno, push není dovolen. Je-li zadána hodnota „*“, může push provést libovolný i neověřený uživatel. Vzdálení uživatelé musí jinak být ověřeni a jejich ověřená jména musí být přítomna v tomto seznamu (oddělená mezerou nebo „,“). Obsah seznamu allow_push je zkoumán po seznamu deny_push.
Odmítnout push:
Zda odmítnout vyslání do repozitáře. Není-li nic zadáno, ‚push‘ není odmítnuto. Je-li zadána hodnota „*“, mají ‚push‘ zamítnut všichni uživatelé, ověření či neověření. Případný seznam deny_push je zkoumán před seznamem allow_push.

Proxy

Hostitel:
Jméno hostitele a (nepovinné) port proxy serveru, například myproxy:8000.
Seznam pro bypass:
Nepovinné. CSV seznam jmen hostitelů, kteří mají obejít proxy server.
Uživatel:
Nepovinné. Jméno uživatele pro ověření u proxy serveru.
Heslo:
Nepovinné. Heslo pro ověření u proxy serveru.

Email

From:
Emailová adresa pro použití v záhlaví „From“ a pro obálku SMTP.
To:
CSV seznam adres příjemců emailu.
Cc:
CSV seznam adres příjemců kopie emailu.
Bcc:
CSV seznam skrytých adres příjemců kopie emailu.
Metoda:
Nepovinné. Použitá metoda při posílání emailových zpráv. Je-li hodnota „smtp“ (implicitní hodnota), použije se SMTP (konfigurace viz níže). Jinak se zadaná hodnota použije jako jméno programu, který působí jako ‚sendmail‘ (příjímá volbu -f pro odesílatele, seznam příjemců na příkazovém řádku, zprávu v stdin). Normálně pro posílání zpráv postačí nastavení sendmail nebo /usr/sbin/sendmail.
Hostitel SMTP:
Jméno hostitele mailového serveru.
Port SMTP:
Port pro připojení na mailovém serveru. Implicitní nastavení je 25.
SMTP TLS:
Určení povolené metody TLS pro připojení k mailovému
serveru. Implicitně: none
Uživatel SMTP:
Uživatelské jméno pro ověření u mailového serveru.
Heslo pro SMTP:
Heslo pro ověření u mailového serveru.
Lokální jméno hostitele:
Hostitelské jméno, které může odesílatel použít pro ověření u mailového serveru.

Diffy a anotace

Oprávka EOL:
Normalizovat ukončení řádků v souboru na lf nebo crlf během a po akci patch. Doporučené nastavení „auto“ provádí detekci po souborech. Implicitně: strict
Formát Git:
Použít rozšířený git formát záhlaví diffu. Implicitně je False.
Formát MQ Git
Nastaveno-li na ‚keep‘, použije mq konfiguraci sekce (diff), přičemž při qrefresh zachová existující oprávky (patches). Nastaveno-li ‚yes‘ nebo ‚no‘, mq potlačí sekci (diff) a vždy generuje gitové nebo regulerní oprávky, přičemž je ve druhém případě možná ztráta dat.
Žádná data:
Do záhlaví diffů nezahrnovat data modifikací. Implicitně je False.
Zobrazit funkci:
Ukázat funkci ve které je jednotlivá změna obsažena. Implicitně je False.
Ignorovat prázdná místa:
Ignorovat prázdná místa (WS) při porovnávání řádků. Implicitně je False.
Ignorovat množství WS:
Ignorovat změny v počtu prázdných míst v zobrazení diffu. Implicitně je False.
Ignorovat prázdné řádky:
Ignorovat změny, jejichž řádky jsou všechny prázdné. Implicitně je False.

Fonty

Font zprávy:
Font průvodních zpráv komitu. Implicitně: monospace 10
Font diffu:
Font pro zobrazení textových rozdílů. Implicitně: monospace 10.
Font seznamu:
Font použitý vseznamu souborů . Implicitně: sans 9.
Font přehledu revizí
Font použitý v přehledu revizí. Implicitně: monospace 10.
Font výstupu:
Font textu v panelu Output Log. Implicitně: sans 8.

Extenze

Aktivační seznam extenzí.

Nástroje

Prostředí pro konfiguraci vlastního ovládacího prvku a jeho zařazení do uživatelské nástrojové lišty.

Hooks

Prostředí pro připojení externích programů pro různé typy příkazů.

Sledování problémů

Regex problému
Definuje regex shody pro vyhledávání čísel problému.
Přípojení k problému
Definuje příkaz, spuštěný při rozpoznání čísla problému. Lze přidat skupiny v issue.regex a příslušné tokeny {n} v issue.link (kde „n“ je kladné celé číslo). Token {0} odkazuje na celý řetězec, shodující se podle issue.regex, zatímco {1} odkazuje ůna první skupinu a tak dále. Nejsou-li v issue.link nalezeny žádné tokeny {n}, je připojen celý shodný řetězec.
Úvodní tagy
Zobrazit tagy na počátku sdělení komitu.
Povinný odkaz na problém
Požadovat odkaz na problém při komitu. Je-li povoleno, musí regex, nastavený v „Issue Regex“, nalézt shodu ve zprávě komitu.
Issue Tracker Plugin
Konfiguruje pluginy COM pro sledování chyb.
Konfigurovat Issue Tracker
Konfiguroat vybraný plugin COM Bug Tracker.
Aktualizovat Issue Tracker

Určuje, kdy má být aktualizován stav IT. Platná nastavení jsou:

never :
Neaktualizovat stav IT automaticky.
commit :
Aktualizovat stav IT po úspěšném komitu.

Implicitně: never

Changeset Link

Šablona řetězce, která změní číslo revize a krátký hash z panelu revize na link. Tato šablona používá syntaxi Mercurialu, jež aktuálně přijímá dva výrazy:

{node|short} :
je nahrazen dvanácti ciferným ID revize ({node} samo o sobě není aktuálně podporováno).
{rev} :
je nahrazen číslem revize.

Například, pro připojení ke komitovým stránkám bitbucket můžete provést toto nastavení: https://bitbucket.org/tortoisehg/thg/commits/{node|short}

Review Board

Server
Cesta k příkladu pro RB: „http://demo.reviewboard.org
Uživatel
Jméno uživatele pro ověření přístupu na RB.
Heslo
Heslo pro ověření přístupu na RB.
ID repozitáře na serveru
Implicitní ID repozitáře na serveru RB
Cílové skupiny
Seznam čárkami oddělených cílových skupin
Cílové osoby
Seznam čárkami oddělených cílových osob

Klávesová navigace

Ctrl-Enter
Uplatnit změny a ukončit dialog; ekvivalent stisknutí tlačítka ‚OK‘.

Spuštění z příkazového řádku

Konfigurační dialog může být spuštěn z příkazového řádku

thg repoconfig

pro nastavení repozitáře (.hg/hgrc file) nebo

thg userconfig

pro uživatelskou konfiguraci (Mercurial.ini file).

Příkazy se zadávájí bez parametrů, kromě globálních voleb.

Oprávky

Definice oprávky

Pro pochopení historie a povahy oprávek (patches) a jejich použití v Mercurialu je důležitá četba následujících odkazů (žel, v angličtině).

Úskalí

Standardní formát oprávky neumí popsat binární soubory, přejmenování souborů nebo změnu povolení. Potřebujete-li cokoliv z uvedeného zachytit, musíme povolit oprávky git zadáním:

[diff]
git=True

Mercurial 1.5 své chování v tomto směru vylepšuje. Vydá upozornění, když jsou potřebné diffy git nebo se někdy do formágu git nastaví automaticky - diff section.

Oprávkové rutiny Mercurialu nezacházejí dobře s různými EOLN u zdrojových kódů a u oprávek. Pro zlepšení situace bylo v 1.3 zavedeno nastavení patch.eol:

[patch]
eol = auto #strict, lf, or crlf

Poznámka

Je-li EOL nastaveno na auto, zachová oprávková rutina konce řádků zdrojového kódu bez ohledu na jejich ukončení v oprávce samé. Nastavení na auto použijeme ve většině případů. Nevýhodou tohoto nastavení je, že nemůžete provést oprávku, která mění ukončení řádků oproti zdrojovému souboru.

Viz také patch section dokumentace hgrc.

Aplikace oprávky není ‚omyluvzdorná‘ operace. Pokud se zdrojový soubor odchýlil od souboru, použitého pro vytvoření oprávky, mohou při její aplikaci vzniknout konflikty. Tyto se pak zapisují do souboru s příponou .rej. TortoiseHg obsahuje příkaz thg rejects, který může pomoci při slučování odmítnutých porcí (chunks) do zdrojového souboru.

Export oprávek

Changeset

Pro export changesetu jako oprávkového souboru použijete kontextovou nabídku pro vybranou revizi ve Verpánku Export > Export patch…. Procedura zapíše changeset do souboru v kořenovém adresáři repozitáře.

Rozsahy changesetů

Vyberte začátek a konec rozsahu changesetů ve Verpánku a otevřete speciální kontextové menu pro rozsah revizí. Z tohoto menu můžete generovat oprávky, svazky, poslat email nebo zobrazit diffy nahromaděných změn.

Toto je velmi účinná procedura bez omezení pro vybírané bázové a cílové changesety.

Email

Email dialog

Pro odeslání vybraného changesetu ve Verpánku jako emailu použijete kontextové menu Exportovat > Email oprávky…. Volba otevře okno pro odeslání vybraného changesetu.

Pro odeslání rozsahu changesetů použijete výše popsaný způsob výběru a zvolíte Email selected… nebo Email DAG range…

Konečně lze pro odeslání všech odchozích změn do vybraného vzdáleného repozitáře použít tlačítko Email v synchronizační liště úkonové karty Synchronizovat.

Poznámka

Pro posílání oprávek emailem nutno nastavit SMTP

Import oprávek

Import tool

Dialog pro import oprávky lze otevřít v menu Repoziář nebo prostřednictvím příkazu thg import. Dialog podporuje přemisťování souborů a adresářů metodou drag and drop.

Můžete importovat přímo do repozitáře, pracovního adresáře, shelfového souboru nebo do své fronty oprávek.

Poznámka

Import oprávky vyžaduje čistý stav pracovního adresáře. Před importem oprávky musíte provést commit, revert, nebo odložení (shelve) změn.

Poznámka

Když se nedaří importovat oprávku čistě do repozitáře, doporučuje se importovat oprávku do fronty oprávek (qimport) a potom provést qpush. Tato procedura používá „patch rejection“ dialog a zachovává meta-date v záhlaví oprávky. Nezapomeňte provést qrefresh po rozřešení odmítnutých porcí (chunks).

Varování

Pokud importovaná oprávka nemá zprávu komitu, pokusí se Mercurial spustit váš editor, stejně jako kdyby jste se pokoušel importovat oprávku z příkazového řádku. Pro zdárný průběh akce je zapotřebí, aby váš UI editor byla aplikace GUI.

Fronty oprávek

Je-li povolena extenze MQ, aktivuje se několik dalších procedur Verpánku. Je k dispozici rozšířená nabídka kontextového menu v přehledu revizí, kde je přítomnost oprávek graficky vyjádřena tvarem uzlů grafu DAG.

Patch Queue

Fronta oprávek v Přehledu revizí

Lze otevřít přemistitelný panel Fronta oprávek (Patch Queue), kde lze nastavit či zrušit ‚aplikovanost‘ oprávky, smazat vybranou oprávku nebo zadat guard.

Patch Queue

Dvojí poklep na neaplikované oprávce, aplikované oprávce jiné než qtip nebo qparent spouští příkaz qgoto; poklepnutá revize se stává aktuální oprávkou. Dvojí poklep na kterékoliv jiné revizi spustí zobrazení jejího diffu.

Poznámka

Po povolení nebo zapovězení extenze MQ v repozitáři je nutné restartovat Workbench. To platí pro většinu extenzí.

Poznámka

Je vřele doporučováno seznámit se s extenzí MQ před jejím používáním ve Verpánku.

Změněno ve verzi 2.10: Karta Patch Queue byla nahrazena kartou Commit a přemistitelným panelem Patch Queue.

Odmítnuté oprávky

Jak bylo již dříve poznamenáno, u oprávek není zaručeno, že se čistě aplikují na zamýšlené zdrojové soubory. Při odmítnutí porcí oprávek bylo před TortoiseHg 2.0 jedinou možností otevřít zdrojový a odmítnutý soubor v editoru a ručně uspořádat odmítnuté porce.

TortoiseHg 2.0 zavádí dialog, který tuto činnost trochu ulehčuje. Když odkládací (shelve) nástroj rozpozná odmítnutí porcí (chunks), otevře tyto porce ve zvlášním editoru. Totéž činí nástroj MQ pro příkazy qpush.

Patch Rejects Editor

Resolve rejected patch chunks

Editor odmítnutých porcí je poměrně primitivní. Zdrojový soubor je otevřen pro editování v okně QScintilla2. Pod zdrojovým souborem je seznam porcí, které se nepodařilo na tento soubor aplikovat. Poklepete-li na porci v seznamu, přeskočí editor na řádek, kde se očekává shoda kontextu porce. Uživatel musí určit proč se porce nepoužila a řešit to (možná i ignorováním porce). Stavy resolved / unresolved jsou evidovány, takže lze kdykoliv zjistit, kdy se s porcemi pracovalo. Jakmile označíte všechny porce jako rozřešené (resolved), stane se tlačítko Save sensitivní.

Extenze

Tato kapitola popisuje extenze Mercurialu, které jsou pro Windows dodávány s binárními balíčky TortoiseHg. Tato rozšíření jsou připojena pro pohodlí uživatelů, kteří si je mohou zpřístupnit, jakmile je potřebuji.

Hgfold

hgfold je rozšíření Mercurialu, které pomůže uživatelům Windows s kolizemi jmen souborů v VFAT a NTFS.

Přidá možnosti k následujícím příkazům Mercurialu. Více info viz hg help <command>:

up    - dovolí aktualizovat k revizi s kolizemi jmen souborů
merge - dovolí sloučení s changesetem, který by vytvořil kolizi jmen souborů

Extenze v současné době neumí kolizi zabránit. Viz wiki Mercurialu.

Instalace

Abychom si vyzkoušeli použití tohoto pluginu, zadáme příkaz z příkazového řádku:

hg --config "extensions.fold=" status

Můžeme jej zaké zapsat do konfiguračního souboru Mercurial.ini nebo do souboru hgrc v repozitáři:

[extensions]
fold=

Učíníme-li to, můžeme vypustit opci –config.

Varování

Jako u všech slučovacích operací musí soubor fold.py změnit rodiče pracovního adresáře. To se stále ještě zkouší a proto používejte opatrně.

Dostaneme-li po běhu příkazu hg recover chybové hlášení, vyzkoušíme příkaz hg debugsetparents <číslo revize tip>`. Toto číslo zjistíme příkazem hg log.

Perfarce

Perfarce home page.

Tato extenze je dokumentována v odstavci Perfarce (Perforce) kapitoly Použití s jinými systémy VCS.

Mercurial-Keyring

Extenze keyring slouží k bezpečnému ukládání hesel pro spojení přes HTTP a SMTP. Tato extenze používá služby knihovny Python Keyring Lib.

Co se provádí

Při první akci pull/push z/do vzdáleného repozitáře požádá extenze o heslo pro HTTP a uloží jej do databáze hesel. Při další akci hledá jméno uživatele v .hg/hgrc a heslo v databázi a tyto důvěrné údaje použje, pokud je nalezne.

Podobně při posílání e-mailu přes SMTP server, který vyžaduje autorizaci, požádá o zadání hesla při prvním použití serveru, uloží jej do databáze a při dalších použitích jej opět použije.

Stane-li se heslo nesprávné (protože bylo neplatné, nebo že bylo změněno), je uživatel požádán o zadání hesla znovu.

Instalace

Nejprve musí být povolena extenze v souboru Mercurial.ini:

[extensions]
mercurial_keyring=

Konfigurace uložiště hesla

Nejvhodnější zázemí (backend) hesla by obvykle mělo být výbráno automaticky, bez konfigurace. Lze jej ovšem konfigurovat s použitím souboru ~/keyringrc.cfg (keyringrc.cfg in the home directory of the current user). Podrobnosti viz keyring docs .

Poznámka

On Windows XP and above, your encrypted passwords are stored in the credentials subsystem using CredRead and CredWrite

Poznámka

On Windows 2K, the encrypted passwords are stored in the system registry under HKCU\Software\Mercurial\Keyring.

Konfigurace repozitáře (HTTP)

Editujte .hg/hgrc lokálního repozitáře a uložte tam cestu ke vzdálenému repozitáři, jméno uživatele, nikoli však heslo. Na příklad:

[paths]
myremote = https://my.server.com/hgrepo/someproject

[auth]
myremote.schemes = http https
myremote.prefix = my.server.com/hgrepo
myremote.username = mekk

Jednodušší forma s vloženým názvem url může být také použita:

[paths]
bitbucket = https://User@bitbucket.org/User/project_name/

Poznámka

Je-li v .hg/hgrc zadáno jméno uživatele i heslo, potom je extenze použije bez použití heslové databáze. Není-li jméno uživatele uvedeno, extenze bude pokaždé vyžadovat osobní údaje, také bez uložení hesla. Takže se v obou případech vlastně vracíme k implicitnímu chování.

Podrobnější informace získáte v [auth].

Konfigurace repozitáře (SMTP)

Editujte buď .hg/hgrc nebo ~/.hgrc (vhodnější je obvykle ten druhý) a zadejte tam všechny standardní vlastnosti pro email a smtp, včetně názvu uživatele smtp ale bez hesla pro smtp. Na příklad:

[email]
method = smtp
from = Joe Doe <Joe.Doe@remote.com>

[smtp]
host = smtp.gmail.com
port = 587
username = JoeDoe@gmail.com
tls = true

Stejně jako v případě HTTP, musíte zadat jméno uživatele ale nesmíte zde uvádět heslo, chcete-li použít extenzi. V opačném případě se procedura překlopí do implicitního chování.

Použití

Konfigurujte repozitář jak výše uvedeno, pak už jen stahujte a vysílejte (pull a push) nebo emailujte. Na heslo byste měl být tázán pouze jednou (pro každou kombinaci jména uživatele a URL vzdáleného repozitáře).

projrc

projrc je extenze, která prozkoumá soubor .hg/projrc, hledaje další konfigurační možnosti. Soubor se přenese klonováním a stažením (pull) ze seznamu serverů, který musí být nakonfigurován uživatelem. Z bezpečnostních důvodů musí být také uvedeno, která konfigurační nastavení projrc mají být přenesena (implicitně se žádná nastavení ze žádného serveru nepřenášejí). Uživatel také může nastavit extenzi tak, že automaticky zahrne všechny změny do souboru .hg/projrc.

To je důležité pro centralizovaná nastavení, kde chcete distribuovat konfigurační nastavení do všech repozitářů s minimálním úsilím. Zejména to lze použít pro přemapování subrepozitářových zdrojů, jak je vysvětleno v textu SubrepoRemappingPlan.

Konfigurace

Tato extenze (jako většina jiných) je implicitně nepovolena. Abyste ji mohli používat, musíte ji nejprve povolit v panelu Setting/Extension.

Je-li extenze povolena, vidíte nový vstup „Projrc“ v dialogu pro nastavení. Zde můžete extenzi konfigurovat úpravou následujících položek:

Request confirmation
Je-li True (implicitně), jste vyzván k potvrzení kdykoliv extenze zaznamená změny v souboru .hg/projrc vzdáleného serveru. Je-li False, extenze automaticky přijme všechny změny souboru .hg/projrc vzdáleného serveru.
Servers
Toto nastavení je seznam čárkami oddělených globů, které se shodují s názvy serverů, z nichž bude soubor projrc stažen (pulled). Pokud není toto nastvení zadáno, žádné soubory .hg/projrc se nikdy ze žádného serveru nepřenesou.
Include

Tímto klíčem určíte, které sekce a které klíče budou přijaty ze vzdálených souborů projrc. Je to seznam čárkami oddělených globů, které se shodují s názvy sekcí nebo klíčů, které mohou být připojeny.

Názvy klíčů musí být určeny názvem jejich sekce následovaným tečkou, následovanou názvem klíče (např. diff.git).

Všechny sekce a klíče povolíte zadáním „*“ (bez uvozovek).

Exclude

Toto nastavení je podobné nastavení Include ale má opačný účinek. Deklaruje seznam nastavení, která nebudou přenesena ze společných soubofů projrc.

Seznam „exclude“ má stejnou skladbu jako seznam „include“. Je-li zadán exkluzivní seznam ale inkluzivní seznam je prázdný nebo neexistuje, budou připojeny všechny nevyloučené klíče.

Jsou-li zadány oba seznamy a klíč nalézá shodu v obou seznamech, má prioritu nejvíce explicitní shoda v následujícím pořadí:

  • za nejvíce explicitní jsou považovány přesné shody pro klíče (např. ui.merge;
  • následují shody vzorů (globů) (např. auth.bitbucket.com.*), přičemž nejvíce explicitní je nejdelší vzor shody;
  • shody na úrovni sekcí (e.g. ui);
  • globální (*) shody.

Shoduje-li se klíč stejnou délkou jak s exkluzivními, tak s inkluzivními vzory, je klíč „zahrnut“ (to jest, inkluze má přednost pře exkluzí).

Použití

Řádně nastavená a povolená extenze prohledá soubory .hg/projrc při každém klonování nebo stahování z repozitářů, uvedených v její konfiguraci „servers“.

Kdykoliv extenze zjistí změnu ve vzdáleném souboru projrc (e.g. when you do not have a .hg/projrc file yet, or when the contents of said file have changed on the server), obdržíte varování pokud nemáte „Require confirmation“ nastaveno na False (v kterémžto případě extenze předpokládá, že změny přijímáte). Přijmete-li změny, váš lokální soubor .hg/projrc je aktualizován a jeho nastavení jsou Mercurialem a TortoiseHg vzata v úvahu.

Má-li lokální repozitář soubor .hg/projrc, uvidíte v dialogu pro nastavení další panel s názvem „project settings (.hg/projrc)“.

Tento panel je pouze pro čtení a ukazuje aktuální nastavení v souboru .hg/projrc. I když můžete aktualizovat svoji lokální verzi .hg/projrc, nemožnost měnit údaje v panelu naznačuje, že nemůžete měnit nastavení vzdáleného repozitáře a že když se nastavení vzdáleného repozitáře změní, vaše lokální kopie bude aktualizována při nejbližší akci pull (pokud to dovolíte).

Panel „project settings“ se zařadí mezi panely „global settings“ a „repository settings“, čímž je naznačováno, že jeho nastavení jsou použita po globálních nastaveních ale před nastaveními lokálního repozitáře (uvedenými v souboru .hg/hgrc)

Dodatečná poznámka

Podrobnější údaje o používání a konfiguraci z přikazového řádku, jakož i nejčersvější informace o extenzi získáte na stránce Wiki.

pbranch

Extenze pbranch (patch branch) sloužila ke správě oprávek coby tematických větví (alternativa k mq). Bohužel, tato extenze přestala být v roce 2012 aktualizována a je proto nekompatibilní s novějšími verzemi Mercurialu.

Použití s jinými systémy VCS

Tato kapitola popisuje tři nejoblíbenější extenze Mercurialu pro spolupráci s cizími systémy VCS. Viz také Konverze repozitáře.

Perfarce (Perforce)

Tato extenze upravuje obsluhu vzdáleného repozitáře tak, že cesta repozitáře, která připomíná:

p4://p4server[:port]/clientname

způsobí operace na jmenované klientské specifikaci p4 na serveru p4. Klientská specifikace musí již na serveru existovat před použitím této extenze. Provádění změn u klienstské specifikace Views působí problémy při synchronizaci repozitářů a měli bychom se jim vyhnout.

Extenze přepisuje pět vestavěných příkazů Mercurialu.

outgoing (odchozí):

Začíná-li název destinace repozitáře p4://, potom jsou vybrány soubory ovlivněné revizemi lokálního repozitáře, nikoliv repozitáře v lokaci p4.

push (poslat):

    Začíná-li název destinace repozitáře p4://, potom jsou exportovány změny z lokálního repozitáře do lokace p4. Není-li určena žádná revize, potom jsou odeslány všechny změny od posledního výpisu změn p4. V obou případech jsou všechny revize, které mají být odeslány, shrnuty v jediném výpisu změn p4.
Volitelně je výsledný changelist předán serveru p4 na základě opce --submit pro push nebo na základě nastavení **perfarce.submit** na True. Je-li **perfarce.keep** nastaveno na False potom se po úspěšném předání souborů smaže pracovní prostor p4.

pull (stáhnout):

Začíná-li název zdrojového repozitáře p4://, potom jsou změny importovány z depotu p4, přičemž se automaticky slučují changelisty podané příkazem hg push. Je-li **perfarce.keep** nastaveno na False, potom se po úspěšném importu souborů smaže pracovní prostor p4; v opačném případě je pracovní prostor p4 novými soubory aktualizován.

incoming (příchozí):

Začíná-li název zdrojového repozitáře p4://, potom jsou oznámeny změny v depotu p4, které dosud nejsou v lokálním repozitáři.

clone:

Začíná-li název zdrojového repozitáře p4://, potom se vytvoří cílový repozitář a přetáhnou se do něho všechny změny z depotu p4.

Nastavení konfigurační opce perfarce.tags určí, zda se perfarce pokusí importovat popisky (labels) Perforce jako tagy Mercurialu.

Integrace TortoiseHg

Je-li umožněna extenze perfarce, přidá se volba start revision do nástroje klonovat a tlačítko P4 do synchronizační lišty.

Tlačítko nástrojové lišty provádí operace „p4pending“. Vyhledá nevyřízené (pending) seznamy změn (changelists) Perforce, které byly poslány (pushed) do vašeho klienta Perforce ale nebyly postoupeny (submitted) nebo staženy (pulled) zpět. Otevře se dialogové okno se seznamem nevyřízených změn, které můžeme buď postoupit (submit) nebo vrátit zpět (revert). Když se proceduře Perforce úkon submit nepodaří, protože vaše soubory jsou zastaralé, musíte zrušit (revert) seznam změn (changelist), provést pull z Perforce, sloučit a provést push znovu.

Instalace

Perfarce se dodává společně s instalátory TortoiseHg 1.0 pro Windows takže jej snadno zavedeme přidáním záznamu do souboru Mercurial.ini nebo do konfiguračního souboru hgrc repozitáře:

[extensions]
perfarce=

Poznámka

Je známo, že extenze perfarce nepracuje spolu s extenzí hgsubversion, takže pokud zamýšlíte používat obě, měly by být povoleny lokálně pro ty repozitáře, které je potřebují.

hgsubversion (SVN)

hgsubversion, jak název napovídá, umožňuje použít Mercurial jako klientskou aplikaci pro server SVN. Lze jej také použít pro přímý převod repozitářů SVN do Mercurialu.

Instalace

Instalační program TotroiseHg pro Window až k vezi 3.3.3 obsahuje pojítka python-svn a hgsubversion. Uživatelé těchto verzí mohou extenzi hgsubversion povolit konfiguračním nástrojem nebo ručně v konfig souboru Mercurial.ini:

[extensions]
hgsubversion =

Funkčnost instalace si ověříme zadáním hg help hgsubversion

Počínaje verzí TortoiseHg 3.4 jsou knihovny subversion a příslušná poutka pro SWIG Pythonu 2.7 z instalace odebrány. Důvodem byly primárně bezpečnostní problémy v knihovnách DLL pro subversion, nad nimiž nemají správci TortoiseHg žádnou kontrolu. Důvodem byla rovněž snaha vyhnout se potřebě přikládat ke každému vydání TortoiseHg další kompletní systém správy revizí - SVN.

Pojítka (bindings) pro SWIG Pythonu jsou nyní k disposici jako samostatný download. Pokyny pro stažení a použití těchto poutek jsou dostupné na Subversion bindings for Python 2.7.

Viz hgsubversion wiki. Doporučujeme verzi hgsvn alespoň 1.2.1 s Mercurialem 1.8.

Varování

Při klonování serveru pro Subversion se doporučuje klonovat pouze několik prvních revizí a ostatní stáhnout akcí pull. Chování příkazu clone je nastaveno tak, že se při neúspěšném provedeni neúplný klon smaže, zatímco realizace příkazu pull je mnohem tolerantnější.

Integrace TortoiseHg

Importované changesety Subversion zobrazí původní číslo changesetu na kartě Podrobnosti revizí ve Verpánku.

hg-git (git)

hg-git, jak název naznačuje, nám umožní použít Mercurial jako klientskou aplikaci pro server git. Lze jej použít také pro přímý převod repozitáře Git do Mercurialu.

Instalace

Instalační programy TortoiseHg pro Windows obsahují pojítka (bindings) python-git (zvaná dulwich) a hg-git. Je možné je povolit nástrojem Settings nebo ručně:

[extensions]
hggit =

Úspěšnost nastavení lze ověřit příkazem hg help hggit.

Podrobnosti viz dokumentace hggit.

Vězte, že příkazy ‚incoming‘ a ‚outgoing‘ nepracují vždy spolehlivě při komunikaci s gitovými repozitáři. Jste tedy odkázán na jednoduché příkazy ‚pull‘ a ‚push‘, což je společné Mercurialovým extenzím, které komunikují s externími nástroji správy verzí.

Frequently Asked Questions

Co je TortoiseHg?

Extenze konzoly Windows pro Mercurial podobná extenzím Tortoise pro Subversion a CVS. Obsahuje také aplikaci hgtk, použitelnou na mnoha platformách.

Co je součástí binární instalace TortioseHg pro Windows?

Mercurial, kdiff3, TortoisePlink five bonus extensions: hgfold, hgcr-gui, perfarce, mercurial-keyring. python-svn for hgsubversion and convert extensions, and dulwich for hg-git use. See extension-versions.txt in installer root for more details

Je Mercurial ve Windows kompatibilní s indexovací službou a se skenery virů?

Ne. Stejně jako v TortoiseSVN, doporučujeme v pracovní kopii repozitáře vypnout indexování a vyloučit skenování proti virům.

Jak lze získat překlady kontextového menu Exploreru?

Dostupné překlady jsou při instalaci uloženy ve složce C:\Program Files\TortoiseHg\cmenu_i18n. Poklepem na zvýrazněném souboru thg-cmenu-cs.reg aktivujte dva dotazy, které potvrďte.

Jak provádět sloučení a výběr libovolných revizí?

Pro sloučení a aktualizace je vhodný Verpánek s kontextovou nabídkou vybrané revize.

Proč se nemohu připojit ke serveru SSH (remote: bash: <server name>: command not found)?

TortoisePlink (and basic Plink) will try to use the Host Name configured in Putty under the Default Settings. It adds this host name to its command line parameters, causing the hostname to be specified twice, causing this particular error. Clearing the host name from the Default Settings is a possible workaround.

Jak mohu použít nástroj X jako svůj „visual diff“?

Od verze 1.0, by měl TortoiseHg umět detekovat nejpopulárnější diffové nástroje a nabídnout je k výběru v konfiguračním nástroji Visual Diff Tool.

Jak je TortoiseHg konfigurován?

Konfigurační sestavení získává Torotisehg ze dvou systémů.
  1. Z konfiguačního systému Mercurialu, který má tři úrovně:
  1. pro počítač - \Documents and Settings\admin\Mercurial.ini
  2. pro uživatele - \Document and Settings\user\Mercurial.ini
  3. pro repozitórium - repo-root\.hg\hgrc
  1. Ze složky %APPDATA%\Tortoisehg:
  1. Soubor thg-reporegistry.xml obsahuje Seznam repozitářů Verpánku.
  2. Soubor TortoiseHgQt.ini obsahuje nastavení pro stav aplikace (pozice oken, atp).

Toto jsou některé položky, které jsou uloženy v konfiguračním systému Mercurialu.

[tortoisehg]
vdiff = vdiff
editor = gvim
tabwidth = 4
longsummary = True
graphlimit = 500
authorcolor = True
authorcolor.steve = blue

Kde hledají extenze TortoiseHg externí moduly Pythonu ve Windows?

TortoiseHg obsahuje úplnou distribuci Pythonu sbalenou do souborů DLL. Moduly standardní knihovny jsou v souboru library.zip složky C:\Program Files\TortoiseHg.

Pokusíte-li se použít extenzi, která importuje nestandardní modul Pythonu, zjistíte, že se extenze nenačte, protože nemůže modul najít. Například extenze ReviewBoard importuje modul simplejson, který není součástí standardní distribuce Pythonu.

Aby vám extenze chodila, musíte přidat několik řádků na začátek souboru ~.py a to před řádek, který importuje cizí modul:

import sys
sys.path.append(r'C:\path\to\module')

Nepomůže to u modulů, distribuovaných jako soubory ~.egg; doplněná cesta musí obsahovat soubory modulu ~.py nebo ~.pyc.

Máte-li více extenzí a/nebo hooků, sdílejících tentýž paket (package) Pythonu, můžete vytvořit extenzi, která explicitně modifikuje sys.path pro všechny ostatní. Jednoduše uveďte extenzi tak aby byla načtena jako první (abecedně). Nějak takto:

[extensions]
00setSysPath = C:\path\to\setsyspath.py

Debugging

Dialogy

Stderr je zachycen v bufferu, který je prohlížen při ukončení programu. Je-li v bufferu nalezena jakákoliv vážná chyba (tracebacky, atp), je celý jeho obsah poslán do nástroje pro hlášení chyb a uživatel má možnost chybu hlásit. Máte-li podezření, že se vyskytly nezaznamenané chyby, můžete nastavit proměnnou prostředí THGDEBUG na jakoukoliv hodnotu, čímž vyřadíte ukládání stderr do bufferu.

Máte-li elementární znalost Pythonu, můžete také použít:

thg --debugger <command>

Chcete-li vyřadit dělení nástrojem thg, můžete buď zadat proměnnou prostředí THG_HGTK_SPAWN, nebo přidat parametr k CLI příkazu ‚–nofork‘.

Windows

Pro odstranění závad např. ve Verpánku, zadejte tyto příkazy do konzoly cmd.exe, nacédované do repozitáře:

set THGDEBUG=1
thg --nofork log

Linux/MacOSX

Podobně jako ve Windows:

export THGDEBUG=1
thg --nofork log

Extenze shellu

Způsob odladění závisí na platformě.

Windows

Viz také Debugging with the shell kde jsou informace o spuštění a testování extenzí shellu ve Windows.

Nástroj DbgView ze sady SysInternals odchytí chybovou zprávu
z extenze shellu. Shell ovšem ladící informace neemituje implicitně. Je nutné to povolit editací klíče registru, definovaného v
win32/shellext/DebugShellExt.reg
v repozitáři TortoiseHg. Dvojklikem na souboru můžete načíst klíč do svého registru.

Jinou možností je opustit aplikaci ThgTaskbar a spustit ji z příkazového řádku. Ladící informace jsou potom emitovány v otevřené konzole.

Nautilus

Ladění se provádí prostřednictvím proměnné DEBUG_THG

  • pro testování v odlišném procesu:

    DEBUG_THG=Ne TMPDIR=/tmp/anydir/ --no-desktop nautilus [path]
    
  • pro testování v hlavní instanci:

    nautilus -q
    DEBUG_THG=NOe nautilus
    
  • pro permanentní ladění zadejte DEBUT_THG v souboru, který je načítán při spuštění seance (~/.profile, ~/.xprofile)

Velká písmena v DEBUG_THG označují moduly. Pouze O a N u OverlayCache a Nautilus, jsou podporované názvy modulů. Malá písmena označují části. Podporováno je pouze e, označující chybové zprávy.

Pro restartování nautilus použijte buď

  1. killall nautilus (seance restartuje nautilus automaticky, stdin a stdout jdou do ~/.xsession-errors)
  2. nautilus -q; nautilus (stdin a stdout jsou v konzole)