Mercurial

Mercurial(マーキュリアル)とは



Mercurialは、ソフトウェア開発者向けの分散型バージョン管理システムです。Microsoft Windows、FreeBSD、MacOSLinux等のUnix系システムで利用可能で、GPL v2+の条件の下で自由ソフトウェアとして提供されています。

特徴



Mercurialは、以下の主要な設計目標を掲げています。

分散型VCS: 完全分散型の共同開発環境を提供します。
高いパフォーマンスとスケーラビリティ: 大規模なプロジェクトでも効率的に動作します。
堅牢なファイル処理: テキストファイルバイナリファイルの両方を適切に扱います。
高度なブランチ機能とマージ機能: 複雑な開発ワークフローに対応します。
シンプルな概念: 初心者でも理解しやすい設計です。

Mercurialは主にコマンドライン駆動で動作しますが、Webインターフェースも統合されており、グラフィカルユーザーインターフェース拡張機能も利用可能です。TortoiseHgやいくつかのIDEがMercurialによるバージョン管理をサポートしています。また、他のバージョン管理システムからの移行を容易にするための手段も提供されています。

技術的な詳細



Mercurialは主にPythonで実装されています。バイナリdiffの実装はC言語で記述されていましたが、現在はRustを用いた`chg`(差分取得)、`hgcli`(クライアント用コマンドツール)、`hg-core`(コアモジュール)の実装が進められています。

歴史



Mercurialは、Linuxカーネル開発に利用されていたBitKeeperのフリー版配布停止をきっかけに、Olivia Mackall氏によって開発されました。Mackall氏は、BitKeeperに代わる分散型バージョン管理システムとしてMercurialを開発し、2005年4月19日にバージョン0.1をリリースしました。

同時期に、Linuxカーネル原著作者であるリーナス・トーバルズ氏もGitの開発を開始していましたが、Mackall氏は、Mercurialの優位性を主張し、トーバルズ氏と論争を繰り広げたこともあります。最終的にLinuxカーネルプロジェクトはGitを採用しましたが、Mercurialは他の多くのプロジェクトで利用されるようになりました。

Mercurialという名前は、水銀を意味する英単語「mercury」に由来し、その元素記号がHgであることから採用されました。

設計



Mercurialの設計目標は、以下の通りです。

高い性能とスケーラビリティ
サーバーが不要な完全分散型共同開発環境
テキストファイルバイナリファイルの両方を効率的に扱うこと
シンプルな概念でありながら高度なブランチ機能とマージ機能を持つこと

Mercurialは、リビジョンを識別するためにSHA-1ハッシュを使用します。ネットワークを介したリポジトリへのアクセスでは、HTTPベースのプロトコルを使用して、往復要求、新しい接続、転送されるデータを削減します。SSHでも同様のプロトコルを使用します。

主な機能



バージョン0.9.5から、他のバージョン管理システムで管理されたソースコードを取り込む機能がサポートされています。

採用事例



MercurialはLinuxカーネルには採用されませんでしたが、FacebookWorld Wide Web ConsortiumMozillaなど、多くの組織で利用されています。Facebookは大規模なマルチプロジェクトリポジトリに対応するために、RustでMononokeというMercurialサーバーを開発しました。

2013年FacebookはMercurialを採用し、大規模な統合コードリポジトリを処理するためのスケーリングに取り組みました。

Bitbucketは、2020年6月にMercurialのサポートを終了すると発表しました。その理由として、新規プロジェクトの1%しかMercurialを利用していないことを挙げています。

Mercurialサーバーとリポジトリ管理



以下のソフトウェアがMercurialサーバーとリポジトリ管理を提供します。

RhodeCode Inc. による RhodeCode
Kallithea (RhodeCode の GPLv3 フォーク)
Fog Creek Software による Kiln
Phacility による Phabricator

ソースコードホスティング



以下のウェブサイトでMercurialリポジトリの無料ソースコードホスティングが提供されています。

Atlassian による Bitbucket2020年2月から非推奨となり、2020年6月1日以降はMercurialリポジトリのサポートを終了)
SourceForge.net
フリーソフトウェア財団による Savannah
Puszcza (Savannah の姉妹サイト、ウクライナでホスト)
OSDN
Perforce
Mozdev
TuxFamily
FusionForge

その他



Mercurialを使用しているオープンソースプロジェクトが多数あります。

関連項目



バージョン管理システムの一覧

脚注



(ここに脚注の内容が入ります)

出典



(ここに出典の内容が入ります)

外部リンク



ウェブサイトのURL'>公式ウェブサイト
Official Mercurial Project Wiki
Mercurial 日本語チュートリアル
分散バージョン管理Git/Mercurial/Bazaar徹底比較
Mercurialではじめる分散構成管理
Mercurialの利用
Mercurialでバージョン管理

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。