Mercurial
|
Mercurial の公式ロゴマーク。 | |
| 開発元 | Olivia Mackall[注釈 1] |
|---|---|
| 初版 | 2005年4月19日 |
| 最新版 | 6.9.2 - 2025年2月19日[1] [±] |
| リポジトリ | |
| プログラミング 言語 | Python, Rust, C |
| 対応OS | クロスプラットフォーム |
| 種別 | 開発支援、リポジトリ、バージョン管理ソフトウェア、無料のオープンソースソフトウェア |
| ライセンス | GPL v2+ [2] |
| 公式サイト |
www |
Mercurial (マーキュリアル) は、ソフトウェア開発者向けの分散型バージョン管理システムである。Microsoft Windows、FreeBSD、MacOS、Linux等の Unix 系システムでサポートされている。GPL v2+ [3] の条件の下で自由ソフトウェアとしてリリースされている。
Mercurial はシンプルな概念の下、次のものを主要な設計目標としている。
Mercurial は主としてコマンドライン駆動のプログラムである。Mercurial のすべての操作は、そのドライバープログラム hg への引数として呼び出される。(hg というプログラム名は、英: mercury が水銀を意味しその元素記号が Hg であることに由来する。)
その一方で、Mercurial には、統合された Web インターフェイスが含まれており、グラフィカルユーザインタフェースの拡張機能が利用できる。 TortoiseHg およびいくつかの IDE では、Mercurial によるバージョン管理のサポートを提供する。また他のバージョン管理システム、特に Apache Subversion のユーザの移行を容易にする手段も講じている。
Mercurial は主に Python で実装されている。バイナリ Diff 実装は C 言語で記述されていた。現在はRustを用いた chg (差分取得。C言語 からの置換え)、hgcli (クライアント用コマンドツール)、hg-core (コアモジュール) の実装が進められている。[4][5]
Olivia Mackall[注釈 1] は、Mercurial の創始者であり、2016年後半までリード開発者を務めた。
歴史
[編集]2005年4月上旬、Linuxカーネルの開発に利用されていたBitKeeperのフリー版の配布停止が発表された(詳細についてはBitKeeper#価格変更参照)。Linuxカーネル開発者の一人でもあった Mackall はBitKeeperに代わる分散型バージョン管理システムの開発に乗り出し、4月19日に0.1をリリースした[7]。 既にLinuxカーネルの原著作者であるリーナス・トーバルズも同様の目的でGitの開発を開始していたが、Mackall は Linux kernel Mailing List 上で Mercurial の優位性(データを差分の形式で保持することにより、リポジトリのサイズを節約している等)を訴え、トーバルズと論争を繰り広げたこともあった。LinuxカーネルプロジェクトはMercurial ではなくGitを使用することを決定したが、現在[いつ?]、Mercurial は他の多くのプロジェクトで使用されている。「Git vs. Mercurial」はハッカー文化の聖戦の1つになった。
Mercurial メーリングリストの回答で、Mackall は「Mercurial」という名前がどのように選ばれたか説明した。
設計
[編集]設計目標は、
である。またMercurialは完全なWebインターフェースを含んでいる。 原著作者はOlivia (Mattは旧名) Mackall で、2016年にMercurial開発から引退した[9]。
Mercurial はSHA-1ハッシュを使用してリビジョンを識別する。ネットワークを介したリポジトリへのアクセスでは、Mercurial はHypertext Transfer Protocolベースのプロトコルを使用して、往復要求、新しい接続、および転送されるデータを削減しようとする。 Mercurial は、プロトコルがHypertext Transfer Protocolベースのプロトコルに非常に似ているSSHでも機能する。デフォルトでは、外部マージツールを呼び出す前にマージ (バージョン管理システム)を使用する。
主な機能
[編集]0.9.5版から、他のバージョン管理システムで管理されたソースコードを、取り込む機能がサポートされている[10]。
採用事例
[編集]Mercurial はLinuxカーネルソースの管理に選択されていないが、Facebook[11]、World Wide Web Consortium、Mozillaを含むいくつかの組織で採用されている。FacebookはRustを使用してMononoke[12][13]を作成している。これは、大規模なマルチプロジェクトリポジトリをサポートするために特別に設計されたMercurial サーバである。
2013年、FacebookはMercurial を採用し、大規模な統合コードリポジトリを処理するためのスケーリングに取り組み始めた[14]。
Bitbucketは、Webベースのバージョン管理サービスが2020年6月にMercurial のサポートを終了すると発表し、新しいプロジェクトの1%のみがそれを使用していると説明した[15]。
Mozillaは長年Firefoxなどの開発にMercurialとGitを利用していたが、2023年にGitへ一本化することを発表した[16][17][18]。
- RhodeCode Inc. によるRhodeCode
- Kallithea(RhodeCodeのGPLv3フォーク)
- Fog Creek Software によるKiln
- Phacility によるPhabricator
ソースコードホスティング
[編集]Mercurial 分散RCSを使用するいくつかのプロジェクト[25]
関連項目
[編集]脚注
[編集]出典
[編集]- ↑ “Mercurial”. mercurial-scm.org. 2025年2月21日閲覧。
- ↑ “Relicensing”. 2020年4月15日閲覧。
- ↑ “Relicensing”, Mercurial (wiki), Mercurial-scm.org.
- ↑ “Mercurial (stable branch): b561f3a68e41 rust/README.rst”. www.mercurial-scm.org. 2020年4月15日閲覧。
- ↑ “Mercurial (stable branch): /rust/ ディレクトリ”. www.mercurial-scm.org. 2020年4月15日閲覧。
- ↑ “Matt Mackall is now Olivia Mackall”. Mercurial. 2021年5月28日閲覧。
- ↑ Matt Mackall (2005年4月20日). “Mercurial v0.1 - a minimal scalable distributed SCM”. Linux-Kernel (Mailing list).
- ↑ Mackall, Matt (15 February 2012). “Why did Matt choose the name Mercurial?”. Mercurial (Mailing list). 2016年6月7日閲覧.
- ↑ “mpm - Mercurial”. 2025年12月5日閲覧。
- ↑ https://www.selenic.com/mercurial/wiki/index.cgi/ConvertExtension
- ↑ “Scaling Mercurial at Facebook” (2014年1月7日). 2020年3月7日閲覧。
- ↑ “A Mercurial source control server, specifically designed to support large monorepos.: facebookexperimental/mononoke” (2019年1月31日). 2020年3月7日閲覧。
- ↑ “Google Groups”. groups.google.com. 2020年3月7日閲覧。
- ↑ “Scaling Mercurial at Facebook”. Facebook Code. Facebook. 2015年10月13日閲覧。
- ↑ “Sunsetting Mercurial support in Bitbucket”. Bitbucket (2019年8月20日). 2019年8月29日閲覧。
- ↑ Reed, J Paul (2007年4月12日). “Version Control System Shootout Redux Redux”. 2020年3月7日閲覧。
- ↑ “FIREFOX DEVELOPMENT IS MOVING FROM MERCURIAL TO GIT”. 2025年12月5日閲覧。
- ↑ “デスクトップ版「Firefox」の開発が「Git」に一本化へ、「Mercurial」を諦める - 窓の杜”. 窓の杜. 2025年12月5日閲覧。
- ↑ “分散バージョン管理Git/Mercurial/Bazaar徹底比較”. 2025年12月5日閲覧。
- ↑ “Welcome [Puszcza]”. ps.gnu.org.ua. 2020年3月7日閲覧。
- ↑ “Let's start OSS development with Mercurial (Hg) - OSDN”. osdn.net. 2020年3月7日閲覧。
- ↑ “Try Helix TeamHub Free | Perforce”. info.perforce.com. 2020年3月7日閲覧。
- ↑ “TuxFamily: Free hosting for free people”. www.tuxfamily.org. 2020年3月7日閲覧。
- ↑ “Hosting”, Mercurial (wiki), Mercurial-scm.org.
- ↑ “Some projects that use Mercurial”, Mercurial (wiki), Mercurial-scm.org.
- ↑ James Gosling (October 2006). “Open Sourcing Sun's Java Platform Implementations, Part 1” (Interview). Interviewed by Robert Eckstein. Sun. 2009年3月1日時点のオリジナルよりアーカイブ.