hg「中止: Sorry, can't find svn parent of a merge revision.」『クソァ!!』
苦戦の後(苦笑 「訳が分からないよ」
hgsubversion を利用して、svnリポジトリから hgに持ってきたんですが、hg側で merge が発生すると、svn にコミットできなくなるようです。 ……マージしたんだから、ブランチ解消!一本道状態なのになんでコミットできないんじゃクソァ!! と、直感に反するような気がするんですが、それが hgsubversion 界での常識のようです。ぐぬぬ
でまぁ、どうするのかなぁ…と調べると、以下の数少ないトラブルシューティングページがヒットします。
- hgsubversionではhg mergeしてできたmerge済みrevisionをpushすることはできない。 - wyukawa's diary
- TortoiseHG+hgsubversionでのsvnのbranchのmerge - monjudoh’s diary
「1個svnコミット専用のブランチ的何かを作って、変更をそこに全部取り入れちゃいましょう!」ってのは分かったんです…が……
解説の通りに操作しても出来ねぇ(ぉ orz
"revert" するように書いてあるのですが、バージョンが違うためか(利用バージョン == 2.1.3)TortoiseHg Workbench でリビジョンを右クリックしてもンな項目がないんですね。 似たような物に「バックアウト」という項目がありますが、コレを選択しても 「他のブランチの変更は打ち消せません」 とか言われちゃう。うむむ…
↑リバートは無い。…けど「バックアウト」とかいう項目はある。アイコンは一緒だけど……(続く)
よくわからんので、ブランチ前に update するところまでは GUI でやって、revert は CUI からかける事に決定
>hg revert -a -r 44 adding HPネタ\AdobeCD-ROM_Drive\cs2_00.bmp adding HPネタ\AdobeCD-ROM_Drive\cs2_01.bmp adding HPネタ\AdobeCD-ROM_Drive\cs2_02.bmp adding HPネタ\AdobeCD-ROM_Drive\cs2_03.bmp adding HPネタ\Yahoo_Box\require.txt removing HPネタ\vs2003\cs2_00.bmp removing HPネタ\vs2003\cs2_01.bmp removing HPネタ\vs2003\cs2_02.bmp removing HPネタ\vs2003\cs2_03.bmp adding a.txt adding dummy_commit.txt removing てすと.txt
なんか動いた!
この状態からコミットした後に、TortoiseHg workbench から svnリポジトリに push してみたところ………
コミットできた…!できたよママン……!!!
という、revert は CUI からやったら svnリポジトリにコミットできるようになりましたというお話でした。(ぉ
…GUI から revert かけられる方法はあるのかなぁ…いやあるんだろうなぁ……(苦笑