何の話か
- Mercurialを業務で使ったので、これまでGitを使ったときとの所感をメモっておく
- Mercurialはチームのメンバーとして既にある運用ルールで使ったが、Gitは2人で使っていて割と独学で私がルールを作っていた
MercurialとGitの違い
- Mercurialは間違ったマージの戻しはかなりつらい(らしい)
- Gitの戻しも綺麗に戻すには結構つらいが、Mercurialで間違ったマージをプッシュした場合、「間違ったマージをプッシュしたら殺すw」と冗談めいて言われるレベルらしい
- 理由としては、そういった操作をするためのコマンドがデフォルトで用意されていないからかな?と思っている
- コミットをローカルで戻すのにも拡張コマンドを使えるようにしないといけないとかあったし
- Mercurialは単純、Gitは高機能な印象
- Mercurialは現在のチームではほんとに次のコマンドしか使っていない
- clone
- up -C
- commit
- merge
- diff
- branch
- pull
- push
- 単純にブランチに対して更新するだけの印象(チームでの運用がそうだからというだけの可能性もあり)
- その分、戻しのコマンドはよくわからないため、間違った場合の処置がかなりきつそう(ググってもあまり情報がないし)
- Gitでも同じようなコマンドだけでの運用も可能だと思うが、情報が多いので間違ったときの対処もなんだかんだ可能だったりする点でちょっと有利だと思う
- Mercurialは現在のチームではほんとに次のコマンドしか使っていない
MercurialとGitの同じところ
- 次のコマンドはだいたい同じ
- clone
- commit
- merge
- diff
- push
- pullについてはGitでの使い道があいまいな理解ではあるが使い勝手に違いを感じている
- Gitのpullは、ローカルに反映してくれるまで全部やってくれる
- Mercurialのpullは、リポジトリの情報を引っ張ってくるだけの様子※で次の順番で操作する(実はもっと単純で良いのかもだが、)
-
hg up -C ブランチ名
でブランチの切り替えとローカルのクリーン -
hg pull
でリポジトリ情報の取得 -
hg up -C
でローカル更新
-
※コメントもらっての通り、 hg pull
= git fetch
じゃん
自分はどっち派か
なんだかかんだGit派。
Mercurialも使いこなせればアリだと思うが、以下の点で負けているかな。
- Gitがデファクトになっている風潮を感じている
- Mercurialは情報が少ない