いさぽん.COM「つくる」に挑戦中

ゲーム系プログラマによる特に方針のないブログ。技術系とカレー、ラーメンネタ多めだったはずが、最近はダイエットネタ多め。

git vs mercurial

git と mercurial を使ってみて

仕事で git を使うこともありますが


個人的には mercurial を推したいところです。


少なくとも趣味プログラムのバージョン管理は全部 mercurial です。


というわけでmercurial推しについていくつか。


 git の良いところ

とはいえ、流行ってるには理由があるのです。


まずは git の良いところを挙げてみます。


なんと言ってもメジャー

バージョン管理ツールと言ったら git というくらいメジャーです。


やはり知名度が高いというのはいろいろなメリットがあります。


それは git server や git lab と言った git を扱えるプロダクトが多いことです。


Visual Studio にも Microsoft 公式で git プラグインがあったりとこの辺りは大きなメリットですね。


※mercurialにも VisualStudioプラグインはありますよ


細かくいぢれる

不要になったブランチを消すなどかなり細かく作業ができます。


カスタマイズが出来るというのはギーク心をくすぐるものがあります。


何より、自分で操作している感は大きいですね。


mercurial の良いところ

ではこちら、mercurialの良いところ。


 シンプル

git に比べると機能はシンプルです。


覚えることが少なくて良くオペレーションが楽というメリットがあります。


この辺りは git とは逆のコンセプトと言ってもよいかと。


できることに制限がある

大きなところだとブランチを消すなどの消去を行うコマンドはありません。


管理者でも消せません。


なので、うっかり間違ってPushすると永遠に残ります(笑)


コミットの取り消しもコミット自体を消すことはできず


「今のコミットは無しにしてください」という情報をコミットするしかありません。


git 使いはこの辺りが「なんで消せないの?」と言うのですが


役目を終えたブランチを含め、コミットログというのは「どういう変更をしたのか」という貴重な情報です。


コミットを取り消したというのも「変更を加えようとしたけどすべきではなかった」という貴重な情報です。


こういった情報は正直残っていると恥ずかしかったりするのですが


あとで振り返るととても良い情報になります。


何より、「プロジェクトメンバーによってうっかり消された」がないのがありがたい。


TortoiseHg が使いやすい

GUIのフロントエンドである TortoiseHg が使いやすいです。


標準で日本語も扱えますし


履歴などのグラフも見やすいです。


git にも TortoiseGit はありますが


mercurial 向けの TortoiseHg の方が使いやすいです。


ちなみに mercurial = 水銀 = HG(元素記号) という感じで TortoiseHg になっています。


 実はgitリポジトリも扱える

使ったことはありませんが git extension というものがあるので


それを有効にすると git も扱えます(笑)


また、git リポジトリを mercurial に変換できたりもするので


意外と乗り換えも安易です。


というわけで

やっぱ劣勢な感じもしますが


運用上、安全な感じのする mercurial をお勧めしたいです。


とりあえず確固たる理由があるならまだしも「みんな使ってるし git」みたいな


感じで mercurial を使わないのはもったいないと思います。