質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Mercurial

Mercurialとはオープンソースの分散型バージョン管理システムです

バージョン管理

バージョン管理はコンピューター上にファイルとして格納されているドキュメント・プログラム・その他の情報の変更履歴等を管理するものです

Q&A

解決済

4回答

3045閲覧

分散型バージョン管理システムについて

ai_2013_dev

総合スコア338

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Mercurial

Mercurialとはオープンソースの分散型バージョン管理システムです

バージョン管理

バージョン管理はコンピューター上にファイルとして格納されているドキュメント・プログラム・その他の情報の変更履歴等を管理するものです

0グッド

2クリップ

投稿2016/07/14 15:39

客先が、新しく分散型バージョン管理システムを導入します。

git/Mercurial の2候補を調査することになりました。

もともと書籍などの情報が多いので、
私は、git のみを客先へ提案する予定でしたが、担当者からMercurialも
検討して言われ、情報を集めているところです。
ただ、
git と Mercurial を比較しても、そんなに差があるとも思えない。

そこで質問があります。
この2つを比較して、できることや性能に違いあるのでしょうか?

以上

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

客先さまとの関係がどのようなものか次第ですが、提案した以上は採用後に操作法のサポートを求められるでしょうし断れないのではないでしょうか。

Mercurial、いま情報収集している段階なのを、サポートできるレベルまで持っていけるでしょうか。

そう考えると、gitとMercurialの最大の違いは「前者は私どもが操作法をサポートできますが後者はノーサポートです」となるのではありませんか。

投稿2016/07/14 23:07

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ai_2013_dev

2016/07/17 15:10

ご回答ありがとうございます。 実は、客先の担当者はgit使いです。 また、作業者の中にもgit使いがいます。 確かにサポートができるかどうか重要な要素の1つですが 今回に関しては、それほど重要ではありません。
guest

0

ぱっと思いつくのは、
Mercurialの方がファイル監視したあとのコミットするまでの手間が少ない。
でしょうか。

gitだと、既に監視対象になっているファイルもadd操作でステージングという作業が必要になりますが、
Mercurialだと、監視した対象のファイルに変更があった場合、自動的に変更を感知し、commitコマンド1発でコミットできるのが利点かなと思います。

それと、Gitはアスキーデータの差分に特化しており、Mercurialはバイナリデータの差分も管理できる、というのが通説として3年前くらいまでは流れてた気がします。

また、Gitでは馴染みのない「無名ブランチ」もちゃんと利用すれば作業効率が上がるのかと思います。
Gitではpullコマンドでfetchmergeを同時にやってくれ、リモートリポジトリのソースコードからローカルリポジトリのソースコードを最新版に簡単にすることができます。
Mercurialでもpullコマンドはありますが、あくまでGitのfetchと同じ役割です。Mercurialはこのあとにupdateコマンドを実行して、手元のソースコードを最新版にします。(hg pull -uでもできるらしいですが)

でも、時には最新のソースをそのままマージするタイミングじゃない時もあると思いますので、あえてマルチプルヘッド(Mercurial独自(?)の概念)の状態で「手元で編集していたソースは残しつつ、最新のソースは別ブランチで保管して作業」ということもできるのかと思います。

最後に、GitとMercurialではブランチの考え方が結構違うので、以下の参考資料を閲覧して、更に比較・吟味することをオススメします。

参考資料

操作体系から見る、GitとMercurialの8つの違い: ニュースの社会科学的な裏側
Mercurial 入門セッション資料 - SCM Boot Camp #2 — SCMBC 2011.11 Mercurial Intro-Session 0.0.1 documentation
GitConcepts - Mercurial

投稿2016/07/14 17:27

manzyun

総合スコア2244

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ai_2013_dev

2016/07/17 15:09

ご回答ありがとうございます。 参考資料を見てみます。
guest

0

ベストアンサー

少し古い情報になってしまうかもしれませんが、という前置きが必要になりますが、メインの利用者が非プログラマであれば Mercurial のほうが機能がシンプルでわかりやすいと思います。

以前は Git が日本語非対応でしたが最近は対応しているのでデメリットにはなりませんね。

そこまで、致命的な機能の差などはないので、運用・保守を考えて選ぶのが良いのではないでしょうか?

その他、私の把握している限りだと、

git

メリット

  • 情報が多い
  • GitHub, GitLab など、Webリポジトリが多い
  • 動作が早い

デメリット

  • 機能が多く複雑

mercurial

メリット

  • 機能が(Gitに比べると)シンプル
  • GUI(TortoiseHg)が標準で提供されている
  • Python ネイティブなので、Python 使いがいるとサポートしやすい

デメリット

  • 知名度が低い(=情報が少ない)
  • Git に比べると遅い( Git=C, Mercurial=Python の差)
  • (セルフホストを含めた)Webリポジトリの提供が少ない

投稿2016/07/15 01:29

kenz_san

総合スコア33

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ai_2013_dev

2016/07/17 15:13

ご回答ありがとうございます。 参考にします。
guest

0

得手不得手があるので、結局のところどのようなプロジェクトかで変わってしまいますね。
作業者の経験や管理するファイルの種類、プロジェクトの構成などなど。

Git、Mercurial、Subversion、Perforce、どれを使う?

投稿2016/07/14 17:25

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ai_2013_dev

2016/07/17 15:08

ご回答ありがとうございます。 そうですね。 作業者の経験や管理するファイルの種類、プロジェクトの構成が重要な要素ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問