一括 am に失敗した件
master branch と develop branch の差が単純に merge できない程度になってきた。
以下なソレさえ微妙。
$ for i in ~/tmp/patch.20130812/* ; do git am $i; done
以下な出力がナニ。
error: patch failed: src/jp/shuri/yamanetoshi/MainActivity.java:204 error: src/jp/shuri/yamanetoshi/MainActivity.java: patch does not apply Patch failed at 0001 Separate password input dialog layout The copy of the patch that failed is found in: /Users/rms/Public/hoge/.git/rebase-apply/patch When you have resolved this problem, run "git am --resolved". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort".
あわわわ、と言いつつ以下。
$ git am --abort
一つづつヤります。
いきなり
最初から、だったことが判明。ちょっと master から branch を切り出して開発 branch を merge してみるか。結果としては二箇所 conflict してました。多分こっちの方が対応としては早そうなのでこちらで云々な方向。
とは言え
一部、正常に merge できてない差分があったりしたのですがこれは一体どーゆー意味だろ。一応取得した diff で確認ができる、というだけでも助かるのかどうか。
とりあえず master に merge する折には
- patch 取得
- git merge で merge するけど CONFLICT 発生前提
- git diff --cached と取得した patch を突き合わせ (面倒)
なのかなぁ。ちょい微妙。やっぱ GitFlow はアレなのかどうか。
そして
再度 master で同じコトをヤるのもアレなので、この branch に commit を作成して master に merge の方向です。
それにしても
patch 取得して git am よりも branch をそのまんま git merge する方が良い、というのはびっくりしました。それ以外にもびっくりな挙動がありましたが。
なんとなくバグッてるカンジなので再現試験してみつつ、報告が入れられれば良いのかもしれませんが、リポジトリ自体が公開できないものだけに、再現のさせ方がアレです。