5.4. Verpánek

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

Workbench

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

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

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

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

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

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

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

Hlavní panely Verpánku jsou tedy tyto:

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

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

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

5.4.1. Hlavní menu

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

Soubor

File menu

Zobrazit

View menu

Repozitář

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

5.4.2. Editovací lišta

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

5.4.3. Parkovací lišta

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

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

5.4.4. Úkonová lišta

Task Toolbar

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

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

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

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

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

5.4.5. Synchronizační lišta

Sync Toolbar

Sync toolbar

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

5.4.6. Pracovní lišta filtru

Filter Toolbar

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

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

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

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

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

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

5.4.7. Graf revizí

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

5.4.8. Výkonové implikace

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

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

5.4.9. Kontextová menu revizí

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

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

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

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

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

Vybrány dvě revize

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

Vybrány více než dvě revize

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

5.4.10. Kontextová menu souboru

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

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

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

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

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

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

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

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

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

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

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

5.4.11. 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}

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

5.4.13. Klávesová navigace

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

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

5.4.14. Nastavitelné možnosti

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

[tortoisehg].
authorcolor.USERNAME = color

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