2019年5月7日火曜日

[Git] マージするときのリネーム上限とリネーム判定の抑制

最近、テスト結果を蓄積する試みをしていたら、git の挙動でハマったので備忘録として残しておきます。

git は意図的なリネームが可能ですが、意図しないリネームが発生したりすることがあります。
これは、リネームは削除と追加がまとまったもので(ほぼ)同じ内容のファイルが削除と追加(別名で)されたときに、git はリネームとして処理することがあります。
なので、こちらとしては望んでいない場合でもリネームとして扱われてしまうことがあります。
(ほとんどの人はこんなケースには遭遇しない気がするけど・・・)

で、なにが起きたかというと、
リネームが大量に検出されて、マージするときのリネーム上限に引っかかってしまいました。



というか、上限なんてあったんだ!という感じでしたが、git config merge.renameLimit で上限解放できるらしいです。
git config merge.renameLimit 9999


そもそもリネームじゃねぇっ!という場合は、merge.renames でリネーム処理を行わないようにもできます。
git config merge.renames false


たぶん、こういうケースにあたる人は少ない気がするけど、
merge.renameLimit と merge.renames config の紹介でした。
では。

0 件のコメント:

コメントを投稿