客先が、新しく分散型バージョン管理システムを導入します。
git/Mercurial の2候補を調査することになりました。
もともと書籍などの情報が多いので、
私は、git のみを客先へ提案する予定でしたが、担当者からMercurialも
検討して言われ、情報を集めているところです。
ただ、
git と Mercurial を比較しても、そんなに差があるとも思えない。
そこで質問があります。
この2つを比較して、できることや性能に違いあるのでしょうか?
以上
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
客先さまとの関係がどのようなものか次第ですが、提案した以上は採用後に操作法のサポートを求められるでしょうし断れないのではないでしょうか。
Mercurial、いま情報収集している段階なのを、サポートできるレベルまで持っていけるでしょうか。
そう考えると、gitとMercurialの最大の違いは「前者は私どもが操作法をサポートできますが後者はノーサポートです」となるのではありませんか。
投稿2016/07/14 23:07
総合スコア5570
0
ぱっと思いつくのは、
Mercurialの方がファイル監視したあとのコミットするまでの手間が少ない。
でしょうか。
gitだと、既に監視対象になっているファイルもadd
操作でステージングという作業が必要になりますが、
Mercurialだと、監視した対象のファイルに変更があった場合、自動的に変更を感知し、commit
コマンド1発でコミットできるのが利点かなと思います。
それと、Gitはアスキーデータの差分に特化しており、Mercurialはバイナリデータの差分も管理できる、というのが通説として3年前くらいまでは流れてた気がします。
また、Gitでは馴染みのない「無名ブランチ」もちゃんと利用すれば作業効率が上がるのかと思います。
Gitではpull
コマンドでfetch
とmerge
を同時にやってくれ、リモートリポジトリのソースコードからローカルリポジトリのソースコードを最新版に簡単にすることができます。
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
総合スコア2244
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
少し古い情報になってしまうかもしれませんが、という前置きが必要になりますが、メインの利用者が非プログラマであれば Mercurial のほうが機能がシンプルでわかりやすいと思います。
以前は Git が日本語非対応でしたが最近は対応しているのでデメリットにはなりませんね。
そこまで、致命的な機能の差などはないので、運用・保守を考えて選ぶのが良いのではないでしょうか?
その他、私の把握している限りだと、
git
メリット
- 情報が多い
- GitHub, GitLab など、Webリポジトリが多い
- 動作が早い
デメリット
- 機能が多く複雑
mercurial
メリット
- 機能が(Gitに比べると)シンプル
- GUI(TortoiseHg)が標準で提供されている
- Python ネイティブなので、Python 使いがいるとサポートしやすい
デメリット
- 知名度が低い(=情報が少ない)
- Git に比べると遅い( Git=C, Mercurial=Python の差)
- (セルフホストを含めた)Webリポジトリの提供が少ない
投稿2016/07/15 01:29
総合スコア33
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
得手不得手があるので、結局のところどのようなプロジェクトかで変わってしまいますね。
作業者の経験や管理するファイルの種類、プロジェクトの構成などなど。
投稿2016/07/14 17:25
総合スコア18155
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/17 15:10