Fetch エクステンション
posted by Zachary Voase on September 29, 2009
Git から乗り換えたばかりのユーザーは、たいてい hg pull の挙動を意外に思うでしょう。
git pull が作業ディレクトリを更新し、自動的にマージした後コミットするのに対し、
hg pull はリモートのチェンジセットをローカルリポジトリに追加するだけで、 作業ディレクトリにはタッチしません。
十中八九、自動マージスタイルのほうがいいでしょ? 幸い、そうするのは簡単です。
~/.hgrc ファイルを開いて 、これを追加してください:
[extensions]
hgext.fetch =
さぁ、この代わりに:
$ hg pull
$ hg update remote_head
$ hg merge local_head
$ hg commit -m "Merged."
こうできるようになりました:
$ hg fetch
fetch はデフォルトで、 pull したリモート変更点のヘッドをマージの第1の親として扱います。
つまり、ローカル変更点のヘッドは第2の親になります。 挙動を逆にしたければ、こうしてください:
$ hg fetch --switch-parent
詳しくは wiki ドキュメント と hg help fetch
の結果を参考にしてください。