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

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

ただいまの
回答率

87.90%

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

解決済

回答 4

投稿

  • 評価
  • クリップ 2
  • VIEW 2,083

score 320

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

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

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

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

以上

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+4

ぱっと思いつくのは、
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/18 00:09

    ご回答ありがとうございます。

    参考資料を見てみます。

    キャンセル

+4

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/18 00:10

    ご回答ありがとうございます。

    実は、客先の担当者はgit使いです。
    また、作業者の中にもgit使いがいます。

    確かにサポートができるかどうか重要な要素の1つですが
    今回に関しては、それほど重要ではありません。

    キャンセル

checkベストアンサー

+3

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

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

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

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

 git

 メリット

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

 デメリット

  • 機能が多く複雑

 mercurial

 メリット

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

 デメリット

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/18 00:13

    ご回答ありがとうございます。

    参考にします。

    キャンセル

+1

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/18 00:08

    ご回答ありがとうございます。

    そうですね。
    作業者の経験や管理するファイルの種類、プロジェクトの構成が重要な要素ですね。

    キャンセル

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

  • ただいまの回答率 87.90%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る