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í.
- 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í Jméno uživatele, které se nachází na záložce Commit, jíž vybereme z nabídky . nám říká abychom něco zadali v textovém poli
.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:
- Ponecháme staré balíčky TortoiseOverlay nainstalovány, neboť ničemu neškodí.
- 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:
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.
Spuštění Verpánku z plochy monitoru
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.
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.

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:
Průzkumník:
z kontextového menuPříkaz: thg init

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

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
Explorer: Z kontextového menu vyberete
Příkaz: :command::thg clone.
Potom zadáte cestu k destinaci a zavelíte Klonovat.

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

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í:
- Předáte změny do svého lokálního repozitáře (provedete komit).
- 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.
- 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ů¶

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 (
), 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 ( ) 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:
- Výběr porovnávaných souborů vyžaduje více nástrojů
- Vybraný nástroj štěpí oddělené procesy na pozadí
- Vybraný nástroj nepodporuje požadované diffy adresářů
- Vybraný nástroj nepodporuje ‚three way‘ porovnávání
- 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:

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.

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
.Na kartě „Kontextové“ můžeme jednotlivé volby přesouvat ze submenu do hlavního menu a obráceně.

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.

- 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

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.

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
.Parkovací lišta obsahuje ikony tří procedur -
. První dvě procedury se zobrazují v samostatném přemistitelném okně. Okno poslední procedury je nepřemistitelné.Výběr ze sekvence
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í
–> 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
nebo . Použijeme k tomu sekvenci , nebo ikonu v editovací liště.Další užitečné zpestření pracovní plochy Verpánku poskytuje volba
, 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é ( > Vybrat sloupce přehledu revizí) a v jakém pořadí.
- Seznam repozitářů neboli repozitórií
- Lze aktivovat ikonou nebo volbou > Zobrazit seznam repozitářů. Volba > 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 –> 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í > 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 , 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.
Editovací lišta¶
- 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ý.
- 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¶
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.

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

- Synchronizovat
- Umožňuje podrobné nastavení cesty ke vzdálenému repozitáři. Karta obsahuje úplnou nabídku synchronizačních úloh.

- Hledat
- Slouží pro vyhledávání zadaného textu v souboru.

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
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¶

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.
- 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í.
- 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í.
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.
Nastavitelné možnosti¶
Nastavitelné parametry Verpánku lze zadat v dialogu 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
.
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
nebo zadáme thg clone.
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 . 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ů.

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:
- Výběr změn je integrován přímo do zobrazení diffu. Žádný přepínač režimu není potřebný.
- 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.
- 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.
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
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.

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

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
- 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:
- připojit passphrase k URL HTTPS v konfiguračním souboru každého repozitáře
- uložit passphrase do konfiguračního souboru uživatele
- 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¶

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¶

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¶

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ů¶

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
.
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ů¶

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ě.
- Nastavení pro počítač v souboru
C:\Program Files\TortoiseHg\Mercurial.ini
Tento soubor je čten jako první a má nejnižší prioritu. - 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č. - 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
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
. 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¶

Pro odeslání vybraného changesetu ve Verpánku jako emailu použijete kontextové menu
. 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
neboKoneč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¶

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.

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.

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.

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.
- Mercurial Keyring home page
- Keyring Extension wiki page
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.
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)¶
- Perfarce home page.
- Mercurial for Perforce users
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 home page
- hgsubversion Extension wiki page
- Working with Subversion Repositories
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 home page
- hg-git Extension wiki page
- Mercurial for Git users
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. Seeextension-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žceC:\Program Files\TortoiseHg\cmenu_i18n
. Poklepem na zvýrazněném souboruthg-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ů.
- Z konfiguačního systému Mercurialu, který má tři úrovně:
- pro počítač -
\Documents and Settings\admin\Mercurial.ini
- pro uživatele -
\Document and Settings\user\Mercurial.ini
- pro repozitórium -
repo-root\.hg\hgrc
- Ze složky
%APPDATA%\Tortoisehg
:
- Soubor
thg-reporegistry.xml
obsahuje Seznam repozitářů Verpánku.- 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žkyC:\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
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ď
- killall nautilus (seance restartuje nautilus automaticky, stdin a stdout jdou do ~/.xsession-errors)
- nautilus -q; nautilus (stdin a stdout jsou v konzole)