Mercurial

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Mercurial
Logo
Vývojář Matt Mackall
Aktuální verze (2.5.4[1])
Operační systém UN*X, Windows, Mac OS X
Vyvíjeno v Python a C
Typ softwaru verzování
Licence GNU GPL v2
Web http://mercurial.selenic.com

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 Mac OS X). 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ť.)

Hlavní cíle Mercurialu:

  • vysoká výkonnost a škálovatelnost
  • decentralizovaný, plně distribuovaný teamový vývoj
  • odolná správa plain text 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.[2] 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 | editovat zdroj]

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 | editovat zdroj]

Autor Mackall poprvé představil Mercurial 19. dubna 2005.[3] 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.[4] 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:[5]

"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 | editovat zdroj]

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 | editovat zdroj]

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, je napsán pouze v Pythonu a nabízí rozhraní GTK+ i Qt.

TortoiseHg je rozšířením příkazů Mercurial a obsahuje skupinu dalších aplikací pro Mercurial. Je k dispozici pro Windows Explorer and GNOME Nautilus.

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

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

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

Další freeware GUI pro Mac OS X, podporuje Mercurial i Git.

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

Zdrojové kódy[editovat | editovat zdroj]

Projekty používající Mercurial[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

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

  1. Mercurial 2.5.4 - http://mercurial.selenic.com/wiki/WhatsNew#Mercurial_2.5.4_.282013-04-04.29
  2. Matt Mackall, Towards a Better SCM:Revlog and Mercurial, Ottawa Linux Symposium Proceedings, 2006.
  3. Mercurial v0.1 - a minimal scalable distributed SCM

    – Mackall Matt [1]

  4. Re: Mercurial 0.4b vs git patchbomb benchmark

    – Mackall Matt, [2]

  5. Why did Matt choose the name Mercurial?

    – Mackall Matt, [3]

Externí odkazy[editovat | editovat zdroj]