TortoiseHG+hgsubversionでのsvnのbranchのmerge

概略

hgsubversionではhg mergeしてできたmerge済みrevisionをpushすることはできない。
hg mergeしたら

  1. merge前revisionにhg update
  2. merge済みrevisionでrevert
  3. hg commit

とやって同内容の非merge revisionを作ってそれをpushすれば良い。

せつめー

黄色のbranchから黒のdefaultにmergeするとする。


まず、TortoiseHGで普通にmergeする。
確認ダイアログでlocal:default,other:branchとなっているようにすること

merge直後の状態はこのようになる。

hgsubversionではhg mergeしてできたmerge revisionをpushすることはできないので、
defaultのmerge直前revisionにhg updateし、

merge revisionでrevertして、commitすると、

merge revisionで有るか無いかという点のみ違うchangesetができる。

hg di -r 637f0772fb82:b93d1b75e858

等してこれらの間に差異がないことを確認

hg outgoingすると、"merge結果の内容を持った非merge changeset"が対象として、出るので、push to hereしてやる。


これで、svnリポジトリのbranchをTortoiseHGでmergeするということが出来る。