Mercurial

Mercurial
Logo
VývojářMatt Mackall
První vydání19. dubna 2005
Aktuální verze6.7.3 (6. května 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.

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ť.)

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

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

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í

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

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

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.

  • MacMercurial

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

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

  • SourceTree

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

  • hgtui

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

Zdrojové kódy

  • Odkaz na seznam na stránkách Mercurial

Projekty používající Mercurial

  • Odkaz na seznam projektů na stránkách Mercurial

Reference

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

  • Logo Wikimedia Commons Obrázky, zvuky či videa k tématu Mercurial na Wikimedia Commons
  • Mercurial SCM
  • Mercurial: The Definitive Guide, Bryan O'Sullivan, 2009, O'Reilly
  • Mercurial: an alternative to Git na LWN.net
  • Tutoriál s příklady použití od základních až ke složitějším
Software pro správu verzí
Rok (pokud je dostupný) udává uvedení první stabilní verze. Systémy, jejichž jména jsou kurzívou, již nejsou udržované nebo bylo oznámeno ukončení vývoje.
Lokální
Free/open-source
Proprietární
  • PVCS (1985)
  • QVCS (1991)
  • Client–server
    Free/open-source
    • CVS (1986, 1990 in C)
    • CVSNT (1998)
    • QVCS Enterprise (1998)
    • Subversion (2000)
    Proprietární
  • Software Change Manager (1970s)
  • Panvalet (1970s)
  • Endevor (1980s)
  • Dimensions CM (1980s)
  • DSEE (1984)
  • Synergy (1990)
  • ClearCase (1992)
  • CMVC (1994)
  • Visual SourceSafe (1994)
  • Perforce (1995)
  • StarTeam (1995)
  • Integrity (2001)
  • Surround SCM (2002)
  • AccuRev SCM (2002)
  • SourceAnywhere (2003)
  • Vault (2003)
  • Team Foundation Server (2005)
  • Team Concert (2008)
  • Distribuovaný
    Free/open-source
    • GNU arch (2001)
    • Darcs (2002)
    • DCVS (2002)
    • ArX (2003)
    • Monotone (2003)
    • SVK (2003)
    • Codeville (2005)
    • Bazaar (2005)
    • Git (2005)
    • Mercurial (2005)
    • Fossil (2007)
    • Veracity (2010)
    Proprietární
  • TeamWare (1990s?)
  • Code Co-op (1997)
  • BitKeeper (1998)
  • Plastic SCM (2006)
  • Serverový software
    Koncepty
  • Branch
  • Fork
  • Changeset
  • Commit
  • Interleaved deltas
  • Delta compression
  • Data comparison
  • Merge
  • Repozitář
  • Tag
  • Trunk
  • Verze
  • *Kategorie