hg diff

まことに情けない話ですが、あるブランチ全体のdiffをとるとき*1こんなふうにしてました。

$ hg diff -r 1234:1237 > /tmp/feiz.out

diffを見たいブランチの先頭リビジョンと最終リビジョン番号を調べてその間のdiff。

こんなとり方をすると何が困るかというと、ブランチ作成後にブランチ元から取り込んだ変更分までdiffに入っちゃいます。

こうしましょう。

#branchAはdefaultから切ったとする

$ hg up branchA
$ hg merge default 
$ hg ci
$ hg diff -r default:branchA

ちゃんとbranchAで加えた変更だけのdiffがとれる。

2行目のブランチ派生元からの取り込みマージは

  • diffを正確に出す
  • ブランチ元へのマージの時にコンフリクトが起こらないようにする

為に重要なので忘れないようにしましょう。

おしまい

thanks to id:monjudoh

*1:メインブランチへのマージ前にブランチ全体のdiffを見てレビューするなど