Mercurial
[Wikipedia|▼Menu]

Mercurial
開発元Matt Mackall
初版2005年4月19日(15年前) (2005-04-19)
最新版5.4.1 - 2020年6月5日(4か月前) (2020-06-05)[1][±]
リポジトリwww.mercurial-scm.org/repo/hg-stable
プログラミング言語Python, Rust, C
対応OSクロスプラットフォーム
種別バージョン管理ソフトウェア
ライセンスGPL v2+ [2]
公式サイトwww.mercurial-scm.org
テンプレートを表示

Mercurial (マーキュリアル) は、ソフトウェア開発者向けの分散型バージョン管理システムである。Microsoft WindowsFreeBSDMacOSLinux等の Unix 系システムでサポートされている。GPL v2+ [3] の条件の下でフリーソフトウェアとしてリリースされている。

Mercurial はシンプルな概念の下、次のものを主要な設計目標としている。
分散型 VCS

完全分散型の共同開発

高いパフォーマンス

スケーラビリティ

プレーンテキストファイルとバイナリファイル両方に対する堅牢な処理

高度な分岐

マージ機能

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]

Matt Mackall は、Mercurial の創始者であり、2016年後半までリード開発者を務めた。目次

1 歴史

2 設計

3 主な機能

4 採用事例

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

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

5.2 Mercurial を使用したオープンソースプロジェクト


6 脚注

7 外部リンク

歴史

2005年4月上旬、Linuxカーネルの開発に利用されていたBitKeeperのフリー版の配布停止が発表された(詳細についてはBitKeeper#価格変更参照)。Linuxカーネル開発者の一人でもあったMatt Mackall はBitKeeperに代わる分散型バージョン管理システムの開発に乗り出し、4月19日に0.1をリリースした。[6] 既にLinuxカーネルの原著作者であるLinus Torvaldsも同様の目的でGitの開発を開始していたが、Mackall はLinux kernel Mailing List上でMercurial の優位性(データを差分の形式で保持することにより、リポジトリのサイズを節約している等)を訴え、Torvalds と論争を繰り広げたこともあった。LinuxカーネルプロジェクトはMercurial ではなくGitを使用することを決定したが、現在、Mercurial は他の多くのプロジェクトで使用されている。「Git vs. Mercurial」はハッカー文化の聖戦の1つになった。

Mercurial メーリングリストの回答で、Mackall は「Mercurial」という名前がどのように選ばれたか説明した。

最初のリリースの少し前に、Larry McVoy を(「気まぐれ」の意味で)水銀性であると説明しています。進行中のBitKeeperの失敗に関する記事を読みました。複数の意味、便利な略語、および既存の命名スキーム(私の電子メールアドレスを参照)との適合性を考えると、すぐにクリックしました。したがって、Mercurial はLarry の名誉にちなんで名付けられました。同じことがGitにも当てはまるかどうかはわかりません[7][8]
設計

設計目標は、

高い性能と
スケーラビリティ

サーバが不要な、完全に分散した共同開発環境

テキストファイルバイナリファイルの両方を効率よく扱うこと

概念上はシンプルなままで、高度なブランチ機能とマージ機能を持つこと

である。またMercurialは完全なWebインターフェースを含んでいる。原著作者はMatt Mackall で、現在も主要開発者である。

Mercurial はSHA-1ハッシュを使用してリビジョンを識別する。ネットワークを介したリポジトリへのアクセスでは、Mercurial はHypertext Transfer Protocolベースのプロトコルを使用して、往復要求、新しい接続、および転送されるデータを削減しようとします。 Mercurial は、プロトコルがHypertext Transfer Protocolベースのプロトコルに非常に似ているSSHでも機能する。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:25 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef