Mercurial

multiplatformní distribuovaný nástroj pro správu zdrojových kódů softwaru

Mercurial je multiplatformní, verzovací nástroj pro vývoj softwaru. Převážná část je napsána v jazyce Python, obsahuje ale i binární část diff napsanou v jazyce C. Může být používán s operačním systémem Windows, stejně jako se systémy typu Unix (jako Linux, FreeBSD či macOS). Mercurial je určen primárně pro použití v příkazovém řádku, dostupné jsou ale i grafická uživatelská rozhraní. Veškeré operace nástroje Mercurial jsou volány v podobě parametrů hlavního příkazu hg. (pozn. Zkratka hg představuje chemickou značku prvku Rtuť.)

Mercurial
Logo
VývojářMatt Mackall
První vydání19. dubna 2005
Aktuální verze6.8.2 (28. října 2024)
Operační systémmultiplatformní software
Vyvíjeno vPython, C a Rust
Typ softwaruverzování
LicenceGPLv2
GNU GPL 2.0 nebo vyšší
Webwww.mercurial-scm.org
Některá data mohou pocházet z datové položky.

Hlavní cíle Mercurialu:

  • vysoká výkonnost a škálovatelnost
  • decentralizovaný, plně distribuovaný teamový vývoj
  • odolná správa textových i binárních souborů
  • možnost pokročilého větvení a slévání (merge)

Všechny tyto body by měl Mercurial dosáhnout při zachování celkové jednoduchosti.[1] Obsahuje rovněž webové rozhraní. Mercurial pamatoval na uživatele SVN pro jejich jednodušší přechod. Autor a hlavní vývojář Mercurial je Matt Mackall. Nástroj je vydán jako free software s licencí GNU GPL v2.

Technické informace

editovat

Mercurial používá k označení revizí SHA-1 hash. Pro přístup k repozitářům po síti používá Mercurial protokol založený na HTTP, který snižuje opakovaní identických dotazů, vytváření nových spojení a množství přenesených dat. Mercurial může používat i ssh, kde je protokol rovněž podobný HTTP. Automaticky používá Mercurial 3cestný merge před voláním externích spojovacích nástrojů.

Historie

editovat

Autor Mackall poprvé představil Mercurial 19. dubna 2005.[2] Jeho podnětem byla zpráva ze stejného měsíce, ve které Bitmover oznamuje ukončení šíření bezplatné verze BitKeeper, tj. nástroje pro kontrolu verzí používaného v projektu kernelu Linux. Mackall se rozhodnul napsat distribuovaný verzovací nástroj, který BitKeeper v tomto projektu nahradí. Projekt vývoje Mercurial byl zahájen několik dnů po zahájení projektu Git, iniciovaného Linusem Torvaldsem se stejným cílem.[3] Projekt kernel Linux se rozhodl používat Git raději než Mercurial, nicméně ten je v současné době používán ve spoustě jiných projektů (viz níže). V jednom svém příspěvku Matt Mackall vysvětluje, jak bylo jméno "Mercurial" vybráno:[4]

"Krátce před vystavením první verze jsem četl článek o probíhajícím debaklu Bitkeeperu, kde byl Larry McVoy popsán jako "mercurial" (ve smyslu "nestálý"). Protože to nabízelo více významů, jednoduchou zkratku a také protože to zapadalo do schématu mých dřívějších použitých názvů (podívejte se na moji emailovou adresu), klaplo to okamžitě. Mercurial byl tím pádem pojmenován na počest Larryho. Nevím, zda to samé platí pro název Git."

Použití

editovat

Na obrázku jsou znázorněny nejvýznamnější operace v Mercurialu a jejich vztah k celkovému konceptu.

 
Obr.1: Nejvýznamnější operace v Mercurialu a jejich vztahy

Související software

editovat
 
hgk

GUI rozhraní pro Mercurial:

  • Hgk

Představuje rozšíření samotného Mercurialu a je součástí oficiální verze. Zobrazuje orientovaný acyklický graf změn v repozitáři Mercurialu. Hgk může být spuštěn příkazem hg view, pokud je toto rozšíření povoleno. Hgk byl původně založen na obdobném nástroji pro Git nazvaném gitk. Nástupce Hgk se jmenuje hgview Archivováno 5. 4. 2012 na Wayback Machine., je napsán pouze v Pythonu a nabízí rozhraní GTK+ i Qt.

TortoiseHg je výchozí grafickou nadstavbou Mercurialu pro Microsoft_Windows, je ale funkční i v GNOME Nautilus.

Pro systém macOS, Objective-C 2.0, spustitelný v macOS verze 10.5 a vyšších.

Další GUI pro macOS "jehož cílem není kompletně nahradit použití Mercurialu v příkazovém řádku, ale jen usnadnit nejpoužívanější operace Mercurial". Pro macOS 10.4 a vyšší.

MacHg je bezplatné, rychlé a multivláknové rozhraní pro macOS, verze 10.6 nebo vyšší.

Další freeware GUI pro macOS, podporuje Mercurial i Git.

Freeware klient typu TUI pro Linux a Windows (s použitím cygwin).

Zdrojové kódy

editovat

Projekty používající Mercurial

editovat

Reference

editovat

V tomto článku byl použit překlad textu z článku Mercurial na anglické Wikipedii.

  1. MACKALL, Matt. Towards a Better SCM: Revlog and Mercurial [online]. mercurial-scm.org [cit. 2019-09-15]. Dostupné online. (anglicky) 
  2. Mercurial v0.1 - a minimal scalable distributed SCM

    Mackall Matt Linux-Kernel Archive: Mercurial v0.1 - a minimal scalable distributed SCM

  3. Re: Mercurial 0.4b vs git patchbomb benchmark

    Mackall Matt, Linux-Kernel Archive: Re: Mercurial 0.4b vs git patchbomb benchmark

  4. Why did Matt choose the name Mercurial?

    Mackall Matt, Skupiny Google

Externí odkazy

editovat